資料結構:
{
"_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還有沒其他的資料.
uj5u.com熱心網友回復:
算了,沒找到答案,搜索排序用solr去解決了uj5u.com熱心網友回復:
《Mongo計算難點總結歸納》這篇文章看看是否能幫到您轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/75207.html
標籤:MongoDB
