【问题标题】:Setting MongoDB's write concern in shell / shell script在 shell / shell 脚本中设置 MongoDB 写入关注点
【发布时间】:2013-09-28 08:37:35
【问题描述】:

我正在尝试在 MongoDB 的 shell 中填充一个集合。据我了解,使用轻松的Write Concern 可以大大加快这个过程。我在谈论the documentation Write Concerns 如何工作,但它所谈论的只是它们如何工作而不是如何设置它们(它说这是在驱动程序中设置的)。而且我已经看到了不同驱动程序的文档以及它是如何在其中设置的,但我似乎无法找到 Write Concerns 是如何在 MongoDB 的 shell 本身中设置的!有谁知道如何从外壳设置它们?

[更新]

为了填充我的数据库,我使用了一个.js 文件并将其提供给mongo 命令,如下所示:

mongo ./test.js

这是test.js文件的内容:

for (var i=0; i<1000000; i++) {
    db.kingdom.insert([
        { "counter" : 0, "last_update" : new Date() }
        , { "counter" : 0, "last_update" : new Date() }
        ...
        , { "counter" : 0, "last_update" : new Date() }
    ]);
}

数据数组用于 100 个相同结构的对象。

【问题讨论】:

  • shell 使用安全,因为它在每个“命令”(即回车)之后调用 getLastError。如果你正在写数据,比如说,在一个循环中,那么 GLE 只会在最后被调用一次。提供有关您计划如何从 shell 填充集合的更多详细信息——也许正确的事情已经发生了。

标签: mongodb shell


【解决方案1】:

你可以specify a write concern for each insert/update operation:

db.blogs.insert({title: '新博文'}, {writeConcern: {j: true}})

【讨论】:

  • 当然,您可以指定 WriteConcern,但即使查看 mongodb's documentation,我也无法找出正确的语法。只写了: { w: , j: , wtimeout: } 没有证据表明这必须是字段 writeConcern 的值,正如你所知道的(你是怎么做到的?)。谢谢!
猜你喜欢
  • 2014-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-13
  • 2014-12-10
相关资源
最近更新 更多