如何获取两个数组的大小? [重复]

问题描述 投票:0回答:1

此问题与以下内容完全相同:

我的问题是,如何获得两个数组的大小?我已经尝试了很多东西,但其中任何一个都无法工作

{
    "_id" : ObjectId("5dc36ebac1f4d52582abc3d1"),
    "array1" : [ 
        {
            "array2" : [ 
                "This is a test!", 
                "test1"
            ]
        }

    ]
}

array1array2在对象内部,也在array1内部

所以,array1的大小为1,array2的大小为2

arrays mongodb mongodb-query aggregation-framework
1个回答
1
投票

对于array1的大小,可以展开array1然后使用count或length。

db.getCollection("stackans").aggregate([
  {
    $unwind: "$array1"
  }
],function(err ,data){
    console.log(data.length)
});

0
投票

您可以在下面的聚合中使用

db.collection.aggregate([
  { "$project": {
    "array1": {
      "$map": {
        "input": "$array1",
        "in": {
          "array2Size": {
            "$size": "$$this.array2"
          }
        }
      }
    },
    "array1Size": { "$size": "$array1" }
  }}
])
© www.soinside.com 2019 - 2024. All rights reserved.