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

1つのクエリで外部と内部の両方の埋め込み配列をカウントします

    $reduceを使用できます および $concatArrays 「マージ」 内部の「配列の配列」を単一のリストにまとめ、 $size その。次に、単に $add 2つの結果を一緒に:

    db.posts.aggregate([
      { "$match": { _id:ObjectId("5dbdacc28cffef0b94580dbd") } },
      { "$addFields": {
        "totalBoth": {
          "$add": [
            { "$size": "$comments" },
            { "$size": {
              "$reduce": {
                "input": "$comments.replies",
                "initialValue": [],
                "in": {
                  "$concatArrays": [ "$$value", "$$this" ] 
                }
              }
            }}
          ]
        }
      }}
    ])
    

    「配列の配列」は$comments.repliesのような式の効果であることに注意してください 、したがって、これらを単一の配列にして、すべての要素を測定できるようにする操作。



    1. URLクエリ文字列から直接供給されるmongoクエリはどれほど危険ですか?

    2. MongoDB-データベースを作成する

    3. MongoDBとApacheSolrの間でデータを同期する簡単な方法

    4. ピモンゴバルクインサート