MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Актуализиране на Mongo в двойно вложен масив

Вече има (MongoDB>=3.6) начин да направите това с arrayFilters и $[идентификатор] .

Примерът по-долу използва mongoose и ще добави елемент в масив вътре в двойно вложен масив. Хубава статия, обясняваща това, е тук .

  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. Версиониране на обекти на Java MongoDB

  2. Какъв е по-добрият подход за съхраняване и запитване на голям набор от метеорологични данни

  3. Вложено групиране с MongoDB

  4. pymongo - модулът dnspython трябва да бъде инсталиран, за да се използват URI mongodb+srv://

  5. Битката на базите данни NoSQL - Сравняване на MongoDB и Cassandra