sql >> データベース >  >> NoSQL >> MongoDB

二重ネスト配列内でのMongoの更新

    現在(MongoDB> =3.6)arrayFiltersを使用してこれを行う方法があります および $ [identifier] 。

    次の例はマングースを使用しており、二重にネストされた配列内の配列にアイテムを追加します。これを説明する素晴らしい記事は、こちら です。 。

      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. 特定のフィールドに基づいて配列内の一意のアイテムを確保する方法-mongoDB?

    2. エラー:127.0.0.1:6379へのRedis接続に失敗しました-ECONNREFUSED127.0.0.1:6379に接続してください

    3. Redisでハッシュマップ値の有効期限を設定しますか?

    4. Mongodb atlas + node.jsはローカルで動作しますが、Herokuにプッシュされると停止します