MonogoDB가 일괄 처리를 지원하지 않는 것 같습니다. 이 올바른지?MongoDB에 Batch Upsert 추가.
그렇지 않은 경우 가장 효율적인 기존 API를 사용하여 일괄 업서스를 추가하는 방법은 무엇입니까? 일괄 upsert가 mongo db에도 의미가 있습니까?
MonogoDB가 일괄 처리를 지원하지 않는 것 같습니다. 이 올바른지?MongoDB에 Batch Upsert 추가.
그렇지 않은 경우 가장 효율적인 기존 API를 사용하여 일괄 업서스를 추가하는 방법은 무엇입니까? 일괄 upsert가 mongo db에도 의미가 있습니까?
upsert 플래그가있는 mongoimport라는 유틸리티가 있습니다. 예 :
mongoimport -c myitems -d mydb --upsert items.json
아마도이 목표가 달성 될 수 있습니까?
기본값은 _id를 기반으로 upsert하는 것입니다하지만 당신은 --upsertFields 플래그는 MongoDB를 2.6로 업그레이드 할 경우에는 new Bulk operations을 활용할 수
http://docs.mongodb.org/manual/reference/mongoimport/#cmdoption-mongoimport--upsertFields
여기 문서화하여 해당 변경할 수 있습니다
C#을 MongoDB.Driver를 들어Bulk.find(<query>).upsert().update(<update>);
Bulk.find(<query>).upsert().updateOne(<update>);
Bulk.find(<query>).upsert().replaceOne(<replacement>);
나는 다음 사용
var writeModels = new List<WriteModel<T>>();
foreach (var entity in list)
{
var id = entity.Id;
if (id == null)
{
writeModels.Add(new InsertOneModel<T>(entity));
}
else
{
var filter = new ExpressionFilterDefinition<T>(x => x.Id == id);
var replaceModel = new ReplaceOneModel<T>(filter, entity);
writeModels.Add(replaceModel);
}
}
await getCollection().BulkWriteAsync(writeModels);
'일괄 업로드'란 정확히 무엇을 의미합니까? 이미 존재하는 객체를 업데이트 (교체)하는 동안 아직 존재하지 않는 문서를 추가합니까? – mnemosyn
네,하지만 하나의 배치가 아닌 하나씩 배치하십시오! 하나의 문서에 대해 upsert하는 save 메소드와 비슷하지만 일괄 처리에 대해 일괄 처리를 수행 할 수 있음 – iCode
이 스레드가 도움을 제공합니까? http://stackoverflow.com/questions/5143756/upsert-multiple -records-with-mongodb – Bill