MongoDB: после реализации TTL больше не имеют разрешения на запрос к БД - PullRequest
0 голосов
/ 31 августа 2018

Я использую версию 2.6.12 Mongo

Я использовал следующее для реализации TTL в коллекции:

db.collectionname.createIndex( { "createdDate": 1 }, { expireAfterSeconds: 8208000 } ) 

Все после 90 дней должно истечь из коллекции.

Когда я пытаюсь найти

db.system.collectionname .find( { createdDate: { $lt: ISODate("2018-04-01") } } ).count()

Я получаю следующее сообщение об ошибке

"ok" : 0,
    "errmsg" : "not authorized on db to execute command { count: \"system.scanObjects\", query: { createdDate: { $lt: new Date(1538352000000) } }, fields: {} }",
    "code" : 13

Я не показываю имя коллекции, когда пытаюсь найти разрешения

db.getRole( "readWrite", { showPrivileges: true } 

1 Ответ

0 голосов
/ 01 сентября 2018

Похоже, проблема в том, что вы добавили system в свой запрос, когда его там быть не должно. Попробуйте следующее:

db.collectionname .find( { createdDate: { $lt: ISODate("2018-04-01") } } ).count()

Системные коллекции - это специальные внутренние коллекции, которые не следует изменять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...