Получить все остальные N документов с Pymongo - PullRequest
0 голосов
/ 11 июня 2018

У меня есть коллекция статистики сервера MongoDB, которая называется stats.

Документ добавляется в эту коллекцию каждые 10 минут, включает некоторые статистические данные и метку времени.

Притворись, что у меня естьэта коллекция:

{"id": "something", "ts"=1}
{"id": "something", "ts"=2}
{"id": "something", "ts"=3}
{"id": "something", "ts"=4}
{"id": "something", "ts"=5}
{"id": "something", "ts"=6}
{"id": "something", "ts"=7}
{"id": "something", "ts"=8}

Я хочу получить все остальные N документы.Пример с N = 2:

{"id": "something", "ts"=1}
{"id": "something", "ts"=3}
{"id": "something", "ts"=5}
{"id": "something", "ts"=7}

Пример с N = 3:

{"id": "something", "ts"=1}
{"id": "something", "ts"=4}
{"id": "something", "ts"=7}

Какой быстрый и эффективный способ сделать это в pymongo?

1 Ответ

0 голосов
/ 11 июня 2018

Это можно сделать с помощью $expr и $mod:

db.test.find({$expr: {$eq: [1, {$mod: ['$ts', N]}]}})

$expr - оператор запроса, который был введен в v3.6, который позволяет использовать агрегированные выражения запроса, такие как $mod (модуль) в запросе find.

...