currentOp的“查询”字段中的字段顺序是什么?

时间:2014-09-18 22:17:19

标签: mongodb

这让我疯狂,可能只是一个愚蠢的问题。我正在尝试改进庞大的mongo数据库上的perf。我们使用python与db进行交互。该表使用复合索引设置,索引的顺序反映了我正在读取和写入表的顺序。

数据库架构如下所示:

    {
    key: { a: "", b: "", c: "", d: "", e: "", f: "" }
    value: { ... }
    }

复合索引在

key.a: -1, key.b: 1, key.c: 1, key.d: 1

使用python的upsert遵循此顺序。即使读取也行。 但是当我执行db.currentOp()时,顺序不是查询的编写方式。

      {
        "opid" : ,
        "active" : true,
        "ns" : "",
        "query" : {
            "key.f" : "",
            "key.e" : "",
            "key.c" : "",
            "key.b" : "",
            "key.d" : "",
            "key.a" : ISODate("2014-09-18T18:00:00Z")
        },
       }

我的问题是"查询"字段显示mongo查询的顺序?或者它只是一个展示品?

谢谢!

1 个答案:

答案 0 :(得分:0)

是的,“查询”中的顺序是mongo如何获取查询以及如何执行查询。这里的问题是用于阅读和阅读的字典。 upsert不是有序的(python)。

看起来mongo api已经回答了这个问题 - http://api.mongodb.org/python/current/api/bson/son.html