2016-12-01 105 views
0

我想按降序对检索进行排序。我如何使用$ exists:true命令处理它?我想排序数组的长度。通过数组长度排序数据

MongoDB的

{ 
    "likelist" : [ 
     "5778173453f8f28a119d6eaa", 
     "5778173453f8f28a119d6eab" 
    ], 
    "unlikelist" : [ 
     "57781e7978ac42eb027d3728" 
    ] 
} 

Node.js的

Data.find({ 
    $and: [ 
     query, 
     { "likelist": { $exists: true } } 
    ] 
}).limit(req.body.limit).lean().exec(function (err,data) { 
    console.log(data) 
}); 
+0

你为什么不使用'的.sort({” _id“:1})' –

+0

因为我想对数组长度进行排序。最高的第一个。 – Tony

回答

0

也许这样的事情会工作

Data.find({ 
    $and: [ 
     query, 
     { "likelist": { $exists: true } } 
    ] 
}).sort({"_id":1}).limit(req.body.limit).lean().exec(function (err,data) { 
    console.log(data) 
}); 

,如果你想要别的东西,然后请你告诉

注:的ObjectId值和产生时间的顺序之间的关系是不严格之内一分一秒

富勒信息阅读:http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-BSONObjectIDSpecification

+0

嗨,我想排序整个数组的长度。用_id:1它不起作用。 – Tony

+0

这是不可能的,至少不能在多个领域 –