MongoDB hint()失败-不确定是否是因为索引仍在索引中

时间:2019-02-06 22:44:00

标签: mongodb mongodb-query mongodb-indexes

在SSH会话1中,我运行了如下操作以在MongoDB中创建部分索引:

db.scores.createIndex(
...                       { event_time: 1, "writes.k": 1 },
...                       { background: true,
...                         partialFilterExpression: {
...                           "writes.l_at": null,
...                           "writes.d_at": null
...                         }});

索引的创建相当大,持续大约30分钟以上。当它仍在运行时,我启动了SSH会话2。

在群集的SSH会话2中,我描述了我的集合scores上的索引,看起来它已经存在了...

db.scores.getIndexes()
[
 ...,
  {
    "v" : 1,
    "key" : {
        "event_time" : 1,
        "writes.k" : 1
    },
    "name" : "event_time_1_writes.k_1",
    "ns" : "leaderboard.scores",
    "background" : true,
    "partialFilterExpression" : {
        "writes.l_at" : null,
        "writes.d_at" : null
    }
 }
]

当尝试使用该索引的提示进行计数时,出现以下错误:

db.scores.find().hint('event_time_1_writes.k_1').count()
2019-02-06T22:35:38.857+0000 E QUERY    [thread1] Error: count failed: {
"ok" : 0,
"errmsg" : "error processing query: ns=leaderboard.scoresTree: $and\nSort: {}\nProj: {}\n planner returned error: bad hint",
"code" : 2,
"codeName" : "BadValue"
} : _getErrorWithCode@src/mongo/shell/utils.js:25:13
DBQuery.prototype.count@src/mongo/shell/query.js:383:11
@(shell):1:1

以下从未见过此消息,但需要确认以检查其是否由于索引仍在运行而失败?

谢谢!

0 个答案:

没有答案