多次插入mongodb-仅更新第一个集合

时间:2018-10-24 08:31:04

标签: database mongodb groovy mlab gmongo

我正在尝试在mlab上托管的mongodb实例中更新集合。

我正在运行以下代码:

...
db.collectionOne.insert(someArrayOfJson)
db.collectionTwo.insert(someArrayOfJson)

第一个收藏集已更新,第二个收藏集未更新。

使用相同/不同的有效Json数组会产生相同的结果。只有第一个被更新。

我已经看到了这个问题duplicate document - same collection,并且我理解了为什么它不起作用。但是我的问题是跨越两个单独的馆藏?

当在mlab上手动插入数据时,文档将进入第二个收集阶段-因此,我相信它允许在单独的收集中重复数据。

我是mongo的新手,我是否缺少简单的东西?

更新

响应为:

22:01:53.224 [main] DEBUG org.mongodb.driver.protocol.insert - Inserting 20 documents into namespace db.collectionTwo on connection [connectionId{localValue:2, serverValue:41122}] to server ds141043.mlab.com:41043
22:01:53.386 [main] DEBUG org.mongodb.driver.protocol.insert - Insert completed
22:01:53.403 [main] DEBUG org.mongodb.driver.protocol.insert - Inserting 20 documents into namespace db.collectionOne on connection [connectionId{localValue:2, serverValue:41122}] to server ds141043.mlab.com:41043
22:01:55.297 [main] DEBUG org.mongodb.driver.protocol.insert - Insert completed

但是对于第二个数据集,没有任何内容输入数据库。

更新v2:

如果我在两次插入之后拨打电话,

db.createCollection("log", { capped : true, size : 5242880, max : 5000 } )

数据收集得到更新!

2 个答案:

答案 0 :(得分:0)

总数据大小是多少?

这是对我有用的示例代码

db.collectionOne.insert([{"name1":"John","age1":30,"cars1":[ "Ford", "BMW", "Fiat"]},{"name1":"John","age1":30,"cars1":[ "Ford", "BMW", "Fiat" ]}]); db.collectionTwo.insert([{"name2":"John","age2":30,"cars2":[ "Ford", "BMW", "Fiat"]},{"name2":"John","age2":30,"cars2":[ "Ford", "BMW", "Fiat" ]}])

如果数据更多,则可以使用“ Mongo Bulk Write Operations”,还可以引用Mongo DB限制和阈值

https://docs.mongodb.com/manual/reference/limits

答案 1 :(得分:-1)

您如何确定第二个收藏集没有更新?

我相信您只是在看NoSQL和SQL数据库之间的区别。 SQL数据库将确保您在成功写入后进行读取将读取您刚刚写入的数据。 NoSQL数据库不能保证您可以立即读取刚刚写入的数据。有关详细信息,请参见this answer