MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Pembaruan Mongo di dalam array bersarang ganda

Sekarang ada (MongoDB>=3.6) cara untuk melakukannya dengan arrayFilters dan $[identifier] .

Contoh di bawah ini menggunakan luwak dan akan menambahkan item ke dalam array di dalam array bersarang ganda. Artikel bagus yang menjelaskan hal ini di sini .

  const blogPost = await BlogPost.create({
    title    : 'A Node.js Perspective on MongoDB 3.6: Array Filters',
    comments : [
      { author : 'Foo', text : 'This is awesome!', replies : { name : 'George', seenBy : ['Pacey'] } },
      { author : 'Bar', text : 'Where are the upgrade docs?', replies : { name : 'John', seenBy : ['Jenny'] } }
    ]
  });

  const updatedPost = await BlogPost.findOneAndUpdate({ _id : blogPost._id }, {
    $addToSet : {
      'comments.$[comment].replies.$[reply].seenBy' : 'Jenny'
    }
  }, {
    arrayFilters : [{ 'comment.author' : 'Foo' }, { 'reply.name' : 'George' }],
    new          : true
  });

  console.log(updatedPost.comments[0].replies);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengejek model luwak dengan lelucon

  2. Permintaan mongodb untuk kondisi bersyarat

  3. Sisipkan array di mana elemen tidak ada lagi perbarui (dengan beberapa kondisi)

  4. Tarik dan tambahkan keset secara bersamaan dengan mongo

  5. Dapatkan tanggal dan waktu dari bidang _id dokumen mongodb