我想通过MongoDb执行批量操作。如何获取将在它之后返回的ID数组?
我可以在不使用批量的情况下更快地执行单操作插入吗?你能告诉我一些其他方法吗?
我使用C# mongoDb driver 2.0
和MongoDb v. 3.0.2
更新:
我找到了以下解决方案 - 保存mongo集合的最大ObjectId
,
db.col.find().sort({_id:-1}).limit(1).pretty()
并在插入后执行相同操作 所以我们将获得插入文档的范围,它是否有意义?
答案 0 :(得分:1)
您可以使用InsertManyAsync
的新驱动程序批量插入项目。如果你想要驱动程序为这些项目生成的ID,你可以在插入它们之后简单地将它们从项目中取出。例如:
Hamster[] hamsters = { new Hamster { Name = "Vaska" }, new Hamster { Name = "Petzka" } };
await collection.InsertManyAsync(hamsters);
var insertedIDs = hamsters.Select(_ => _.Id);