[英]Mongodb update push Array of Objects
我無法解決這個問題(並希望逐個避免循環更新),請在這里解答我。
我有一個fambio文檔(有自己的FamilyModel),在用戶提供以下信息后創建:
{
name: 'john',
lname: 'doe',
}
現在,在保存上述信息后,用戶在后端進行一些處理后會提供有關該系列的更多信息:
let familyArr = [
{ _id: 1234, name: 'Jenny', lname: 'doe', relation: 'mother' },
{ _id: 2345, name: 'Jawn', lname: 'doe', relation: 'father' },
{ _id: 3456, name: 'Jane', lname: 'doe', relation: 'sister' },
{ _id: 4567, name: 'Daisy', lname: 'wick', relation: 'pupper' }
]
總而言之,FamilyModel架構如下所示:
const FamilyModel = mongoose.Schema({
name: {type: String, required: true},
lname: {type: String, required: true},
family: [relationshipSchema]
}, {
timestamp: true
});
const relationshipSchema = mongoose.Schema({
name: {type: String, required: true},
lname: {type: String, required: true},
relation: {type: String, required: true}
}, {
required: false,
timestamp: true
});
現在,John有一系列對象的數組(字段類型為Array),並試圖像這樣插入對象數組:
我嘗試了多種選擇:
db.fambio.updateOne({_id: 1111}, { $set: { family: familyArr }})
db.fambio.findOneAndUpdate({_id: 1111}, { $push: { family: familyArr }});
db.fambio.update({_id: 1111}, $addToSet: { 'family': familyArr}});
關於將構造的Object直接插入到字段中,沒有任何工作。 當我一次插入一個時,它會更新。
如何編寫查詢以將對象數組更新/追加到具有自己的Schema維護的Array Type字段中。
好的,我已經解決了。 我是如何解決的:
最初,我保存了文檔,並按照我的要求帖子對信息進行了一些處理,我希望將數組元素插入到我正在運行的數組鍵字段中,以便插入任何內容。 我缺少的是$ each,這就是我做的:
db.getCollection('fambio').update({
_id: johnsuserid
}, {
$push: {
'family': {
$each:[
{ _id: 1234, name: 'Jenny', lname: 'doe', relation: 'mother' },
{ _id: 2345, name: 'Jawn', lname: 'doe', relation: 'father' },
{ _id: 3456, name: 'Jane', lname: 'doe', relation: 'sister' },
{ _id: 4567, name: 'Daisy', lname: 'wick', relation: 'pupper' }
]
}
}
});
謝謝大家!! 希望這可以幫助將來可能面臨這個問題的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.