在 C# 中,我可以使用 ObjectId.GenerateNewId() 生成 ObjectId 值。
大多数时候,当我在集合中插入文档时,我不会设置 _id 字段的值。 MongoDB 自动创建 ObjectId 值。
我想问一下,使用 ObjectId.GenerateNewId() 方法手动设置是否安全。
最佳答案
当您插入一个新的 mongodb 文档时,子驱动程序会检查是否存在具有 BsonId
AttributeClass 的属性。如果存在且为空,则创建一个新的 ObjectId,如果在文档插入期间不存在,mongodb 将生成一个新的 ObjectId
。
有时用户会遇到“只有零”的 ObjectId 问题,因此我的建议是结合使用 BsonID
属性类和 ObjectId.GenerateNewId
这样您就可以确定该属性不会有奇怪的行为。
例如
public class SomeClass {
[BsonId]
public ObjectId MySuperId { get; set; }
public SomeClass() {
this.MySuperId = ObjectId.GenerateNewId();
}
}
关于c# - 使用 ObjectId.GenerateNewId() 还是离开 MongoDB 来创建一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42349063/