MongoDB如何成为高手

时间:2015-06-24 04:29:27

标签: mongodb mongodb-query database-replication sharding mongodb-java

我正在通过linux终端创建一个MongoDB数据库,我正在尝试为数据库创建一个集合。

但是当我运行命令时:var requestTelemetry = telemetry as RequestTelemetry;我收到以下错误消息:db.createCollection("mainCollection")

我不确定这意味着什么。如何使数据库成为主数据库?

由于

3 个答案:

答案 0 :(得分:1)

您已使用--replSet选项(或等效的configuratin文件选项)启动mongod。这会将mongod置于一种模式,即在收到副本集配置之前,它不允许任何写入。

对于现有的副本集,可以通过在副本集的现有主节点上执行rs.add("<host>:<port>")来完成。

根据围绕这个问题的对话,我认为你有一个MongoDB实例,并且不打算拥有一个真正的多成员副本集。如果是这种情况,您有两种选择:

  • 停止尝试运行副本集
    1. 停止mongod
    2. 擦除mongod进程的数据目录。
    3. 在命令行/ config上没有mongod选项的情况下重新启动--replSet进程。
  • mongod初始化为单个节点副本集。
    1. 从shell运行rs.initiate()(不需要配置)。您将断开连接,但shell将自动重新连接,然后您可以创建集合并执行其他写入。

答案 1 :(得分:0)

如果你在副本集上查询并且你所连接的shell不是主要的,那么预期的行为“Viratan”。

你可以做以下两件事之一。

  1. 断开与当前shell的连接并与Primary连接。在mongo shell中,你会看到它写成“PRIMARY”或“SECONDARY”。

  2. 如果您想要与主要成员相同的成员,则可以增加该特定成员的优先级和/或强制将formar primary作为stepDown。一旦主要人员下台,选举就会发生,因为所需的成员具有更高的优先权,这将成为主要成员。 您可以点击以下链接更改会员http://docs.mongodb.org/manual/tutorial/force-member-to-be-primary

  3. 的优先级

    一旦您以任何一种方式与Primary连接,您就可以查询数据库并完成您的工作。

    Happy Mongoing ..: - )

    - $

答案 2 :(得分:0)

你正试图在secondary.thats上创建一个新的集合,为什么它会给出错误,请使用primary来创建新的