我正在尝试插入具有书籍的User对象,同时插入书籍。我正在使用以下代码。
db.users.insertOne({
"_id": new ObjectId(),
"username": "testusername",
"books": [{"_id": new ObjectId(), "name": "Test Book"}]
})
几乎可以正常工作,只是我的书的键只是数字0或1(就像在普通数组中一样)。 但不应该是ObjectId(请参见屏幕截图)。
答案 0 :(得分:2)
您使用的是数组,因此键为0,1,2 ... 如果要使用ObjectId作为键,则必须使用一个对象
db.users.insertOne({
"_id": new ObjectId(),
"username": "testusername",
"books": {
[new ObjectId()]: { "name": "Test Book" }
}
})
但是书籍不再像数组那样工作,您不能使用数组的任何方法。我建议您继续使用books数组。
答案 1 :(得分:0)
您为什么要手动进行ObjectIds
? MongoDB会为您做到这一点……只是:
db.users.insertOne({
"username": "testusername",
"books": [{"name": "Test Book"}]
})