2016-09-13 1 views
0

У меня есть два следующих сценариев с использованием PyMongo:PyMongo курсор возвращает неполные результаты

cursor = db.col.find({'_id':{'$in':list_of_ids}})

возвращает 87 записей, в то время как LIST_OF_IDS в длину 335.

stuff = [] 
for item in list_of_ids: 
     stuff.append(list(db.col.find({'_id':item}) 

возвращает все 335. Я не хочу попасть в БД 335 раз, но мне также нужно, чтобы получить все мои записи. Я не мог найти ничего в документации. Курсор выхлопа кажется приятным, но я не мог понять, как его установить. Метод next() просто повторяется один за другим. Список (курсор) все еще возвращает 87.

Есть ли у кого-нибудь предложения?

+0

Сколько раз 'для элемента в курсоре:' работает? – styvane

+0

Один раз; вы намекаете на: 'while True: try: для элементов в курсоре ... Кроме: break'? – plumSemPy

ответ

0

Это было связано с тем, что в list_of_ids были дублированы _ids; в то время как у меня больше нет доступа к коду, я уверен, если бы я сделал set(list_of_ids), это было бы 87.