此问题与以下内容完全相同:
我的问题是,如何获得两个数组的大小?我已经尝试了很多东西,但其中任何一个都无法工作
{
"_id" : ObjectId("5dc36ebac1f4d52582abc3d1"),
"array1" : [
{
"array2" : [
"This is a test!",
"test1"
]
}
]
}
array1
和array2
在对象内部,也在array1
内部
所以,array1
的大小为1,array2
的大小为2
对于array1的大小,可以展开array1然后使用count或length。
db.getCollection("stackans").aggregate([
{
$unwind: "$array1"
}
],function(err ,data){
console.log(data.length)
});
您可以在下面的聚合中使用
db.collection.aggregate([
{ "$project": {
"array1": {
"$map": {
"input": "$array1",
"in": {
"array2Size": {
"$size": "$$this.array2"
}
}
}
},
"array1Size": { "$size": "$array1" }
}}
])