Mongodb 如何按照内嵌文档的某个字段排序?
现有数据如下
{
"_id" : ObjectId("5992c90beeb45634df1c2be4"),
"name" : "测试数据1",
"status" : {
"product" : [
{
"id" : ObjectId("59a37f7aef887a1d58b59f4f"),
"sort" : 2
},
{
"id" : ObjectId("59a37f7bef887a1d58b59f50"),
"sort" : 54
},
{
"id" : ObjectId("59a3801cef887a1d58b59f55"),
"sort" : 66
}
],
"line":[]
}
},
{
"_id" : ObjectId("599e7dc07780bbfa9bee42a9"),
"name" : "test数据2",
"status" : {
"product" : [
{
"id" : ObjectId("59a37f7aef887a1d58b59f4f"),
"sort" : 1
},
{
"id" : ObjectId("59a37f7bef887a1d58b59f50"),
"sort" : 30
},
{
"id" : ObjectId("59a3801cef887a1d58b59f55"),
"sort" : 60
}
],
"line":[]
}
}
......
我想要把整个集合按照status.product
里的id=ObjectId("59a37f7aef887a1d58b59f4f")
的数据对应的sort字段进行倒序排序,查询语句应该怎么写呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
数组索引的结构决定了这样的需求没有办法利用索引来排序,所以只能使用内存排序,那么如果需要排序的数据量很大,性能势必很差。不过是可以做的。不知道你最后想要什么样的数据,所以先写成这样,可以自己再编辑成你要的格式:
或者可以写成
出来的结果大致相同,格式上有点不一样。不妨自己理解下,如果有困难再讨论。