一个文档{"m":[1,2,3], "others":xxx}
项目元件中,通过在获得阵列的“m”的第一个元素:mongodb的阵列
db.find({query},{"m":{$slice:1}, "m":1})
返回的是{"m":[1]}
,在DOC的元件是一个数组。但是在这个查询中,数组中只有一个元素会被获取,所以我不需要返回doc包含只有一个元素的数组。这就像子查询中的SQL局部变量。我想要的元素在原文档没有名字,如果我要得到它,然后我需要做一个名字对于它的文档返回,我想是这样的:{“所以LocalVariable”:1},而不是{“M”:1 ]}
我尝试以伸出的第一要素:
db.find({query},{"m":{$slice:1}, "m.1":1})
但这不起作用。
什么是问号? –
@jean我猜你的意思。你想要:“**数组的**第一**元素**,但**不**作为数组值,** **只是**返回值?你不能这样做,而不是用find。也许对于聚合,但我仍然怀疑这是你真正想要的,只是学会使用数组返回值,它是一个包含一个元素的数组,这不应该很难,你提出这个问题的方式显然不是你真正的编码使用情况下,你会做的更好请教一个问题,是关于** **实际代码和问题,需要解决的问题。 –
从JS API它确实是很难区分的。我使用C++的驱动程序,在这种情况下,代码写的很无聊每次我需要得到m个文档,并将其转换为DOC的容器,并获得第一个元素,然后将其转换为int值 – jean