【问题标题】:Mongoose insertMany not inserting in correct orderMongoose insertMany 未按正确顺序插入
【发布时间】:2022-02-10 01:29:42
【问题描述】:

我正在尝试使用以下代码在我的 mongodb 数据库中插入一个包含 26 个项目的数组:

const items = [item1, item2, ....., item26]
Model.remove({}).then(() => Model.insertMany(items));

当我为本地数据库运行此程序时,集合中的项目顺序与预期一致。但是,当我更改与远程 m-lab 数据库的连接时,这些项目在数据库中的顺序不正确。它变成了 item13...item26, item1...item12 之类的东西。

PS:我这样做是为了运行一些测试。

【问题讨论】:

  • 你的意思是他们不是在“正确”的顺序?您如何确定订单?
  • 您可能想阅读this。相关部分:“按照定义,排序默认为undefined,文档的返回顺序也是如此。如果没有查询,则使用自然顺序。结果按照找到的顺序返回,可能与插入重合顺序(但不保证是)或使用的索引的顺序。”。

标签: node.js mongodb express mongoose


【解决方案1】:

我们可以提供一个“有序”选项来将 insertmany 设为 true。

db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>
   }
)

查看文档: https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/

【讨论】:

    猜你喜欢
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 2016-07-02
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多