我的MongoDB文档结构:
_id:ObjectId("12345")
hai:Array
0:Object
designation:"software"
1:Object
designation:"hardware"
2:Object
designation:"Core"
我需要按hai数组对名称进行排序。 我尝试过这样,但是没有用
db.collection.find({_id:ObjectId("12345")}).sort(hai:-1)
db.collection.find({_id:ObjectId("12345")}).sort(hai.designation:-1)
任何人都可以帮忙, 预先感谢
答案 0 :(得分:0)
您必须先unwind
个数组,然后才能对数据进行排序。
参考链接:Sort array
答案 1 :(得分:0)
sort函数需要一个这样的对象(注意括号中的内容):
db.collection.find({_id:ObjectId("12345")}).sort({hai:-1})
或
db.collection.find({_id:ObjectId("12345")}).sort({"hai.designation":-1})
还请注意,如果您的排序是在嵌套对象上,则需要在密钥周围使用引号。
此外:如果您不使用管道(即复杂的查询),则无需使用展开。