我尝试对集合进行排序:
var assortiment_producten = db.get('assortiment_producten');
assortiment_producten.find({
product_ID: product_ID
}, {
sort: {
subcategorie_ID: 1
}
}, function(err, docs) {
});
但是收到的文档没有按subcategorie_ID
排序我在这里错过了什么吗?
答案 0 :(得分:2)
根据find()的文档[1],find的第一个参数是一个过滤器,第二个参数是一个投影。因此,您的排序语法将被解释为投影,这不是您想要的。对于排序,您需要使用sort()函数。
以下适用于我:
> db.assortiment_producten.insert({ product_ID : 1, subcategorie_ID : 'A' })
> db.assortiment_producten.insert({ product_ID : 2, subcategorie_ID : 'B' })
> db.assortiment_producten.insert({ product_ID : 0, subcategorie_ID : 'C' })
> db.assortiment_producten.insert({ product_ID : 0, subcategorie_ID : 'D' })
> db.assortiment_producten.insert({ product_ID : 0, subcategorie_ID : 'A' })
> var product_ID = 0
> db.assortiment_producten.find({ product_ID : product_ID }).sort({ subcategorie_ID : 1 })
{ "_id" : ObjectId("5298b024de2b8992960081a0"), "product_ID" : 0, "subcategorie_ID" : "A" }
{ "_id" : ObjectId("5298b001de2b89929600819e"), "product_ID" : 0, "subcategorie_ID" : "C" }
{ "_id" : ObjectId("5298b01fde2b89929600819f"), "product_ID" : 0, "subcategorie_ID" : "D" }
>
[1] http://docs.mongodb.org/manual/reference/method/db.collection.find/
这有帮助吗?