我有一個蒙戈集合,看起來像這樣:Mongoose如何自動將_id添加到集合項中的數組中的對象?
{
name: string
_id: (auto set)
items: array[
name: string
url: string
items: array[
{
name: string,
url: string,
items: []
}
]
]
}
我使用findByIdAndUpdate
(帶貓鼬)將項目添加到項目數組:
Menu.findByIdAndUpdate(
req.body.parentid,
{
$push: {
items: {
name: req.body.item.name,
url: req.body.item.url,
items: []
}
}
},
{
safe: true,
upsert: true,
new: true
},
function(err, model) {
if (err !== null) {
console.log(err);
}
}
);
這工作得很好,但它不會將_id
添加到插入到items
陣列中的每個對象。我真的需要每個人的ID。
我猜它來自所用的方法findByIdAndUpdate
,因爲它看起來更像是一個更新而不是插入。如果我的想法是正確的。
使用mongodb 3.2.10和mongoose 4.7.6。
任何幫助將非常感激。 謝謝。
編輯:_id: (auto set)
是不真實的,它是通過mongo自動添加。但只是在頂層的對象。
如果你設置了'setDefaultsOnInsert'選項,會發生什麼到'真的'? –