Server Started at Port 3000...
{
_id: new ObjectId("61c707e9f4ff040a47d27c3f"),
username: 'adityaaryam',
password: '1234',
nameOfUser: 'Aditya Aryam',
emailOfUser: '[email protected]',
userAllLists: [
{
name: 'Hello',
items: [],
_id: new ObjectId("61c70d915448262d1dca1a69")
},
{
name: 'Work',
items: [],
_id: new ObjectId("61c70d965448262d1dca1a70")
},
{
name: 'Home Work',
items: [],
_id: new ObjectId("61c70d9b5448262d1dca1a79")
},
{
name: 'Hello',
items: [],
_id: new ObjectId("61c70e7f5448262d1dca1a84")
},
{
name: 'Play',
items: [],
_id: new ObjectId("61c7126a5448262d1dca1a9b")
},
{
name: 'Eat',
items: [],
_id: new ObjectId("61c71325b0219e6ce4f57990")
},
{
name: 'Walla',
items: [],
_id: new ObjectId("61c7197de9564390d506cbe9")
}
],
__v: 7
}
這就是我的資料庫的樣子。我想使用貓鼬將新元素推送到嵌套在“userAllLists”陣列中的“items”陣列。我該如何實施?
我一直在嘗試使用 $push findOneAndUpdate 但我無法達到我想要的結果。
我的架構如下:
const itemSchema = {
name: String
};
const customListSchema ={
name:String,
items:[itemSchema]
};
const userSchema={
username: String,
password: String,
nameOfUser: String,
emailOfUser: String,
userAllLists: [customListSchema],
};
提前致謝!
uj5u.com熱心網友回復:
我認為$push是將新元素推送到嵌套陣列的正確方法,您沒有顯示您嘗試查看它是否有效的代碼,這里是一個基于您的架構的示例
User.update({_id: "61c707e9f4ff040a47d27c3f", }, {
'$push': {
"userAllLists.$[].items": {name: "test item name"}
}
});
注意:$[]運算式會將指定物件推入所有items存在于userAllLists
要僅為特定userAllLists物件推送專案,您可以使用以下語法
User.update({_id: "61c707e9f4ff040a47d27c3f", "usersAllLists._id": "61c70d915448262d1dca1a69"}, {
'$push': {
"userAllLists.$.items": {name: "test item name"}
}
});
這將確保將專案物件推送到usersAllLists具有此 ID的指定物件61c70d915448262d1dca1a69
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/394742.html
標籤:javascript 节点.js 数据库 MongoDB 猫鼬
上一篇:使用neo4j優化計數搜索
下一篇:sqlite3中的錯誤數學
