为什么这个mongo排序不起作用

时间:2013-11-29 11:26:37

标签: mongodb

我尝试对集合进行排序:

var assortiment_producten = db.get('assortiment_producten');
assortiment_producten.find({
    product_ID: product_ID
}, {
    sort: {
        subcategorie_ID: 1
    }
}, function(err, docs) {
});

但是收到的文档没有按subcategorie_ID

排序

我在这里错过了什么吗?

1 个答案:

答案 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/

这有帮助吗?