mongo 有数据结构内嵌list对象,怎么根据某一条内嵌对象排序

loveguoweike 2017-11-03 11:04:49
数据结构:
{
"_id" : ObjectId("59fb2e93670c90000ab85efb"),
"relateId" : NumberLong(124),
"list" : [
{
"relateId" : NumberLong(206),
"position" : 10
},
{
"relateId" : NumberLong(208),
"position" : 4
}
],
"createAt" : NumberLong(1489258188083),
"updateAt" : NumberLong(1505796172787)
}

{
"_id" : ObjectId("59fb2e93670c90000ab86efb"),
"relateId" : NumberLong(125),
"list" : [
{
"relateId" : NumberLong(208),
"position" : 5
}
],
"createAt" : NumberLong(1489258188083),
"updateAt" : NumberLong(1505796172787)
}

查询语句是
db.find({"list.relateId":{$in:[208]}}).sort({"list.position":-1})
是先查出来list.relateId包含208的,再按照list对象里面的position字段排序,那么查询结果理想应该是第二条在上面,因为5大于4,
但是结果是第一条在上面 因为206的position是10 所以我怎么只根据list.relateId等于208的进行排序,不管list还有没其他的数据.
...全文
634 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧