如何在mongodb中找到嵌入嵌套数组的长度?例如,我在mongoDB中有下面的集合。loc字段包含坐标字段,它是一个数组,它又包含另一个数组,它在第0个索引中。我如何找到loc.corrdinates[0]的长度?我尝试使用聚合管道来做这件事,但它给出了语法错误:
db.atolldata.aggregate([
{$project:{_id:0,
fileName:1,
sizeOfArray:{$size:"$loc.coordinates[0]"}}}]);
。
这是我的收藏
()的一个函数;
{
"_id" : ObjectId("54ccb36fe4b0ff85abfee006"),
"_class" : "com.inn.signaleye.model.AtollData",
"rsrp" : "-124",
"index" : 1,
"rgb" : [
192,
157,
0
],
"loc" : {
"type" : "Polygon",
"coordinates" : [
[
[
91.5254213240325,
26.225096
],
[
91.5254099392226,
26.225999
],
[
91.52591034644685,
26.226004
],
[
91.52592172739666,
26.225101
],
[
91.5254213240325,
26.225096
]
]
]
},
"fileName" : "RSRP_ZOne46N_20m_SCFT.shp"
}
2条答案
按热度按时间oknwwptz1#
利用$unwind阶段,将
coordinates
数组扁平化,然后在$project
阶段中找到size
。6tr1vspr2#
您可能需要创建一个具有数组大小的字段来使用它:
请记住,所有文档都必须包含loc字段,否则聚合将失败(因此必须首先使用$match过滤这些文档)。