【问题标题】:MongoDb bulk operation get idMongoDb批量操作获取id
【发布时间】:2015-10-21 20:26:09
【问题描述】:

我想通过 MongoDb 执行批量操作。如何获取后面会返回的id数组?

我可以在不使用 bulk 的情况下更快地执行单操作插入吗?你能告诉我一些其他的方法吗? 我正在使用C# mongoDb driver 2.0MongoDb v. 3.0.2

更新: 我找到了以下解决方案 - 最多保存 ObjectId 的 mongo 集合,

db.col.find().sort({_id:-1}).limit(1).pretty()

插入后做同样的事情 所以我们会得到插入文档的范围,有意义吗?

【问题讨论】:

  • 在操作后从数据库中获取 id 会起作用,但由于 id 已经在驱动程序中,因此效率较低。
  • ObjectIds 不会单调递增,所以你的计划行不通。

标签: c# mongodb mongodb-.net-driver bulkinsert mongodb-csharp-2.0


【解决方案1】:

您可以使用带有InsertManyAsync 的新驱动程序批量插入项目。如果您想要驱动程序为这些项目生成的 Id,您可以在插入项目后将它们从项目本身中取出。例如:

Hamster[] hamsters = { new Hamster { Name = "Vaska" }, new Hamster { Name = "Petzka" } };
await collection.InsertManyAsync(hamsters);
var insertedIDs = hamsters.Select(_ => _.Id);

【讨论】:

    猜你喜欢
    • 2015-02-09
    • 2021-05-07
    • 1970-01-01
    • 2020-11-24
    • 2014-12-31
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多