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

オブジェクトの配列でのMongoose/MongoDB$addToSet機能の使用

    $neを使用する必要があります オペレーター。

    var data = { 'kind': 'tortoise', 'hashtag': 'foo' };
    Model.update(
        { 'articles.hashtag': { '$ne': 'foo' } }, 
        { '$addToSet': { 'articles': data } }
    )
    

    これにより、ハッシュタグの値が「foo」に等しいサブドキュメントが「article」配列にない場合にのみ、ドキュメントが更新されます。

    @BlakesSevenがコメントで述べたように

    $addToSet 値の1つが存在するかどうかをテストすると、関係がなくなるため、これは$pushである可能性もあります。 コードを明確にするため。ただし、$addToSetなので、原則は正しいです。 オブジェクトの一部だけでなく、オブジェクト全体で機能します。

    Model.update({ 
        { 'articles.hashtag': { '$ne': 'foo' } }, 
        { '$push': {'articles':  data } }
    )
    


    1. Mongoは、単一のクエリで一致するドキュメントフィールドを一括検索して更新しますか?

    2. 高可用性のためにOpenedXMongoDBデータベースをデプロイする方法

    3. Redisハッシュと多くのキーの使用のパフォーマンス比較

    4. $ lookupmongodbまたはnodejsmongodbを使用して、複数のコレクションを1つのコレクションに組み合わせるにはどうすればよいですか?