1

我有一组具有如下结构的对象:

{
    "_id" : ObjectId("5233a700bc7b9f31580a9de0"),
    "id" : "3df7ce4cc2586c37607a8266093617da",
    "published_at" : ISODate("2013-09-13T23:59:59Z"),
    ...
    "topic_id" : [
        284,
        9741
    ],
    ...
    "date" : NumberLong("1379116800055")
}

我正在尝试使用以下查询:

db.collection.find({"topic_id": { $in: [ 9723, 9953, 9558, 9982, 9833, 301, ... 9356, 9990, 9497, 9724] }, "date": { $gte: 1378944001000, $lte: 1378954799000 }, "_id": { $gt: ObjectId('523104ddbc7b9f023700193c') }}).sort({ "_id": 1 }).limit(1000)

上面的查询使用topic_id, date索引,但它不保持返回结果的顺序。

强制它使用hint({_id:1})会使结果排序,但nscanned即使limit(1000)指定了也是 100 万个文档。

我错过了什么?

4

0 回答 0