如何按funnelSteps[0].count
对文档进行排序,即如何按第一个count
的{{1}}个数进行排序?
谢谢。
funnelSteps
答案 0 :(得分:1)
MongoDB使用"dot notation"来引用结构中的嵌套元素,因此您确实可以通过索引指定元素:
db.collection.find().sort({ "funnelSteps.0.count": 1 })
1
的排序顺序为升序,-1
为降序排序。有关详细信息,请参阅.sort()
。
这对于已知的"数组元素的位置,但如果你想按照"最少"之类的东西进行排序。 " funnelSteps"然后你会用.aggregate()
:
db.collection.aggregate([
{ "$unwind": "$funnelSteps" },
{ "$group": {
"_id": "$_id",
"funnelSteps": { "$push": "$funnelSteps" },
"lowestCount": { "$min": "$funnelSteps.count" }
}},
{ "$sort": { "lowestCount": 1 } }
])
所以在这种情况下,你需要"拉开"数组,以便在排序之前获得您想要的值。但是对于已知位置,您可以使用基本参数进行排序,如图所示。