这让我疯狂,可能只是一个愚蠢的问题。我正在尝试改进庞大的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查询的顺序?或者它只是一个展示品?
谢谢!
答案 0 :(得分:0)
是的,“查询”中的顺序是mongo如何获取查询以及如何执行查询。这里的问题是用于阅读和阅读的字典。 upsert不是有序的(python)。
看起来mongo api已经回答了这个问题 - http://api.mongodb.org/python/current/api/bson/son.html