Ai đó đang cố gắng đẩy phần tử vào một mảng hiện có thể thực hiện được bằng cách sử dụng thư viện mongodb gốc.
Xem xét đối tượng sưu tập mongodb sau
{
"_id" : 5,
"attachments": [
{
"id": "xxxxxxx",
"subtype": "book",
"title": "xxxx",
"body": "xxxx" ,
"filetype" : "xxxxx"
},
{
"id": "xxxxxxx",
"subtype": "book",
"title": "xxxx",
"body": "xxxx",
"filetype": "xxxxx"
}
]
}
arr = [{
'id':'123456',
'subtype':'book',
'title' : 'c programing',
'body' :' complete tutorial for c',
'filetype' : '.pdf'
},
{
'id':'123457',
'subtype':'book',
'title' : 'Java programing',
'body' :' complete tutorial for Java',
'filetype' : '.pdf'
}
];
Truy vấn sau có thể được sử dụng để đẩy phần tử mảng đến "tệp đính kèm" ở cuối. $ push hoặc $ addToSet có thể được sử dụng cho việc này.
Thao tác này sẽ chèn một đối tượng hoặc phần tử vào tệp đính kèm
db.collection('books').updateOne(
{ "_id": refid }, // query matching , refId should be "ObjectId" type
{ $push: { "attachments": arr[0] } } //single object will be pushed to attachemnts
).done(function (err, updElem) {
console.log("updElem" + JSON.stringify(updElem));
});
Thao tác này sẽ chèn từng đối tượng trong mảng vào tệp đính kèm
db.collection('books').updateOne(
{ "_id": refid }, // query matching , refId should be "ObjectId" type
{ $push: { "attachments":{$each: arr} } } // arr will be array of objects
).done(function (err, updElem) {
console.log("updElem" + JSON.stringify(updElem));
});