Если у меня есть коллекция с _id типа ObjectId, и я не создаю ее самостоятельно, прежде чем вызывать метод Collection.Save, Save должен сгенерировать ее для меня. Возникает вопрос: всегда ли метод Save возвращает обратно вновь созданный _id для каждого типа WriteConcern?running Сохранить метод для получения вновь созданного _id назад
В качестве примера я могу сделать это в C#:
public ObjectId Save(entity)
{
Collection.Save(entity);
return entity.Id
}
будет я всегда получить обратно генерируется _id независимо от настроек WriteConcern и других факторов?
Это свойство 'result.Upserted' всегда пустой ко мне после того, как Сохранить вызов, погода I генерировать Id вручную с помощью объекта ObjectId.GenerateNewId() 'или передавать его как null. Ошибок в обоих случаях не происходит, и документ успешно обновлен или вставлен в базу данных. Mongodb C# driver 1.10 – YMC
@YMC попытаться выполнить регистрацию всего объекта результата и убедиться, что вы не соответствуете существующему документу. –
@Nail Lunn Согласно профилю, регулярная операция 'insert' генерируется как результат запуска метода' Save' с новым 'ObjectId'. 'WriteConcernResult':' Ok: true', 'DocumentsAffected: 0',' HasLastErrorMessage: false', 'updatedExisting: false',' Upserted: null' – YMC