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

MongoDB、複数レベルのドット表記で既存の埋め込みドキュメントに新しい{フィールド:値}を追加しますか?

    スキーマを考えると、実行しようとしていることは不可能です。ドット表記はマルチレベルにすることができますが、配列であるレベルが複数ある場合は、位置演算子「$」を使用してアドレス指定できなくなります。

    例えば。あなたがする必要があるでしょう:

    db.my_collection.update( 
        {'websites.blog_posts.url': 'http://www.example.com/01.html' },
        {'$set': {'websites.$.blog_posts.$.impressions': 549}},
         true );
    

    ただし、MongoDBは最初の配列内の要素の位置しか判別できないため、更新に2つの位置演算子を含めることはできません。

    唯一のオプションは、スキーマを再設計して、ユーザーWebサイトの専用コレクションを作成することです(この場合、他の理由からも優れています)。




    1. MongoDBMapReduce関数でのクエリ

    2. MongoDBで同様の配列をクエリします

    3. node.jsアプリを介してネストされたハッシュをredisに保存します

    4. ポリゴンGeoJSONオブジェクトの座標が配列の配列に格納されているのはなぜですか?