我正在尝试在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 } )
数据收集得到更新!
答案 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限制和阈值
答案 1 :(得分:-1)
您如何确定第二个收藏集没有更新?
我相信您只是在看NoSQL和SQL数据库之间的区别。 SQL数据库将确保您在成功写入后进行读取将读取您刚刚写入的数据。 NoSQL数据库不能保证您可以立即读取刚刚写入的数据。有关详细信息,请参见this answer。