Как вставить предмет, если не существует предмет с таким же именем? - PullRequest
2 голосов
/ 15 ноября 2011

Я вставляю пакет имен:

myCollection.InsertBatch(value.Split(',').Where(o=> !string.IsNullOrEmpty(o)).Select( o => new Client { Name = o.Trim() }));

Как вставить только те, которые не имеют одинаковое имя?

ps Полезны ли MongoInsertOptions в этом случае

1 Ответ

2 голосов
/ 16 ноября 2011

Сделать уникальный индекс на «Имя»

for example, in shell: db.MyCollection.ensureIndex({"Name":1}, {unique = true})

Добавить InsertOptions

var options = new MongoInsertOptions (myCollection) { CheckElementNames = true, Flags = InsertFlags.ContinueOnError, SafeMode = SafeMode.True};

var res = myCollection.InsertBatch(value.Split(',').Where(o => !string.IsNullOrEmpty(o)).Select(o => new Client { Name = o.Trim() }), options);
...