В сеансе 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.
В сеансе 2 SSH для кластера я описал индексы для своей коллекции 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
Никогда не видел этого ниже, но нужно подтверждение, чтобы проверить, происходит ли сбой, потому что индексация все еще выполняется?
Спасибо!