Массовая операция MongoDb получить идентификатор
Я хочу выполнить массовую операцию через MongoDb. Как получить массив идентификаторов, которые будут возвращены после него?
Могу ли я выполнить вставку одной операции быстрее, без использования группового ввода? Можете ли вы посоветовать мне другой подход? я использую C# mongoDb driver 2.0
а также MongoDb v. 3.0.2
Обновление: я нашел следующее решение - сохранить максимум ObjectId
из коллекции монго,
db.col.find().sort({_id:-1}).limit(1).pretty()
и сделайте то же самое после вставки Итак, мы получим диапазон вставленных документов, имеет ли смысл?
1 ответ
Решение
Вы можете вставлять элементы оптом, используя новый драйвер с InsertManyAsync
, Если вам нужны идентификаторы, сгенерированные драйвером для этих элементов, вы можете просто извлечь их из самих элементов после их вставки. Например:
Hamster[] hamsters = { new Hamster { Name = "Vaska" }, new Hamster { Name = "Petzka" } };
await collection.InsertManyAsync(hamsters);
var insertedIDs = hamsters.Select(_ => _.Id);