Я использую этот запрос для создания индекса:

db.CollectionName.createIndex({result: {$exists:true}, timestamp : {$gte: 1573890921898000}})

Что я пытаюсь здесь сделать, так это создать индексацию по метке времени> в прошлом месяце и только для тех данных, где существует результат, но я получаю сообщение об ошибке

{
    "ok" : 0,
    "errmsg" : "Values in v:2 index key pattern cannot be of type object. Only numbers > 0, numbers < 0, and strings are allowed.",
    "code" : 67,
    "codeName" : "CannotCreateIndex"
}

Что я здесь делаю не так?

0
cryptoKTM 16 Дек 2019 в 11:44
Необходимо соблюдать синтаксис createIndex, как описано в этот документ.
 – 
prasad_
16 Дек 2019 в 12:29
1
Я думаю, вы ищете частичные индексы.
 – 
prasad_
16 Дек 2019 в 12:32

1 ответ

Спасибо @prasad_ за предложение, мне нужно было использовать partial_Indexes, поэтому запрос становится:

db.CollectionName.createIndex({result: 1, timestamp: 1}, {partialFilterExpression :{result: {$exists:true}, timestamp : {$gte: 1573890921898000}}})
0
cryptoKTM 16 Дек 2019 в 13:33