没有 MongoDB 版本可用于您的部署。运维管理器 mongodb

Posted

技术标签:

【中文标题】没有 MongoDB 版本可用于您的部署。运维管理器 mongodb【英文标题】:No MongoDB versions have been made available for use in your deployment. OPS manager mongodb 【发布时间】:2020-04-06 19:57:59 【问题描述】:

我已经使用提到的教程在 AWS EC2 中设置了 OPS 管理器

https://docs.opsmanager.mongodb.com/current/tutorial/install-simple-test-deployment/

完成后以及当我尝试创建新的部署

No MongoDB versions have been made available for use in your deployment. At least one MongoDB version must be made available before any changes to your Deployment can be made using Automation.

这是我得到的错误。现在如何解决这个问题

【问题讨论】:

将数据库数组作为道具传递给组件? 我只想将数组传递给其他类并在那里使用它,我没有要求将它们用作道具。这可能不是问题的解决方案 关于您使用的内容的详细信息非常少。有多种方法可以实现这一目标。你在使用 redux 吗?或任何其他状态管理库?如果没有,您可能需要 React COContext 将该数据放入上下文中并在不同的组件中使用。 【参考方案1】:

您尝试在这样的函数中获取数据然后将其导出以用于另一个类的整个方法并不是真正的 React 方式并且不会起作用,因为 React 不会知道数组何时更改。您应该使用 https://reactjs.org/docs/hooks-effect.html 之类的东西来获取要在要渲染的组件中渲染的数据。如果你想为多个组件全局缓存结果,那么你应该看看像 Redux with Redux-Thunk 这样的东西。

以下是我的第一个建议示例,可以放在您的渲染函数中:

const [db, setDb] = useState([]);

useEffect(() => 
    let Database = [];
    fetch('http://localhost:3000/someRoute')
        .then((response) => 
            let jsonStr = response.json();
            jsonStr.then((result) => 
                //console.log(result);                  
                for (let i in result) 
                    let Details = 
                        title: [],

                    ;
                    Details.title = result[i].title;

                    Database.push(Details);
                
            )
        )

    setDb(Database);
);

您还需要添加以下导入:

import React,  useState, useEffect  from 'react';

【讨论】:

在渲染中添加之后下一步是什么 您的数组将在“db”变量中可用(如果您的获取代码有效),然后您可以以任何您想要的方式显示它。在获取完成之前,该数组将为空。【参考方案2】:

你可以将你的 fetch 包装在一个 Promise 中

fetchD = () => 
    let Database = [];
    return new Promise((resolve, reject) => 
              fetch('http://localhost:3000/someRoute')
        .then((response) => 
            let jsonStr = response.json();
            jsonStr.then((result) => 
                //console.log(result);                  
                for (let i in result) 
                    let Details = 
                        title: [],

                    ;
                    Details.title = result[i].title;

                    Database.push(Details);
                    resolve(Database);
                
            )
        );
    )
;

现在在你的组件中

import fetchD from './ the _place_you_exported';

/*
  other code
*/

    someMethod() 
       fetchD().then(data => 
           // do something with the data
           // here data will be the same value what you resolved in this case it will be the Database array
       )
     

【讨论】:

以上是关于没有 MongoDB 版本可用于您的部署。运维管理器 mongodb的主要内容,如果未能解决你的问题,请参考以下文章

MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串

MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串

MongoDB 监测

运维自动化之ansible

云数据库 MongoDB版

自动化运维工具ansible实战第四章一键部署msql主从,redis主从,mongodb主从