MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

mảng đẩy cập nhật mongodb

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));     
    });


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sử dụng mongodump:mongodump:không tìm thấy lệnh

  2. Làm thế nào để giải quyết vấn đề thiếu giao dịch trong MongoDB?

  3. Sử dụng AngularJs và MongoDB / Mongoose

  4. Nút tham chiếu kiểu Mongodb

  5. DB.eval () với Mongo Java Driver