如何设置MongoDB自动为每个子文档分配ID?

Moh*_*kar 1 c# mongodb mongodb-query

public class SubClass {
    public bool isValid {
    get;
    set;
    }
}

public class MainClass {
    public List < SubClass > SubClasses {
    get;
    set;
    }
}

MainClass m = new MainClass() {
    Name = "Mohsen", SubClasses = new List < SubClass > (new SubClass[] {
    new SubClass() {
        IsValid = true
    }
    })
};
MongoMainClassCollection.Save < MainClass > (m);
Run Code Online (Sandbox Code Playgroud)

问题是所有子类 ID 的默认值都为零。
每当我保存 MainClass 时,我希望 MongoDB 为任何 SubClass 分配一个唯一的 ID。

有没有办法配置 MongoDB 来做到这一点?

Thr*_*ion 5

MongoDB 不会自动为您执行此操作。MongoDB 不会将 ID 添加到子文档中。最好的办法是在子类构造函数中添加一些内容来自动为您填充 ID。

public class SubDocument {
    //if using objectId as ID
    public ObjectId Id = { get; set;}

    public SubDocument(){
        Id = ObjectId.GenerateNewId()
    }

}
Run Code Online (Sandbox Code Playgroud)