2

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

我正在运行以下代码:

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

第一个集合得到更新,第二个没有。

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

我已经看到这个问题重复文档 - 相同的集合,我可以理解为什么它不起作用。但我的问题是跨越两个单独的集合?

在 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 } )

数据集得到更新!

4

2 回答 2

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

于 2018-11-06T10:41:45.700 回答
-1

你是如何确定第二个集合没有更新的?

我相信您只是看到了 NoSQL 和 SQL 数据库之间的区别。SQL 数据库将保证您在成功写入后的读取将读取您刚刚写入的数据。NoSQL 数据库不能保证您可以立即读取刚刚写入的数据。有关更多详细信息,请参阅此答案

于 2018-10-30T22:39:18.720 回答