Можно ли повторить курсор монго дважды? - PullRequest
9 голосов
/ 26 марта 2012

Другими словами, есть ли способ перемотать его в начало?

РЕДАКТИРОВАТЬ

Я использую оболочку монго и пимонго.

Ответы [ 3 ]

17 голосов
/ 26 марта 2012

Ruby API имеет метод rewind!, который делает именно то, что вы хотите.

Python API также имеет метод cursor.rewind().

PHP * API также имеет метод cursor.rewind().

Однако ни в API Java, ни в C ++ нет метода перемотки. Все это можно найти на официальной странице API 1017 *.

1 голос
/ 21 сентября 2017

Вы можете использовать cursor.reset();

Для PHP: $cursor->reset();

, затем запустить foreach($cursorData as $data) в любое время после сброса.

0 голосов
/ 26 марта 2012

Курсор в pymongo имеет метод .rewind(), вы можете обратиться к образцу кода из предыдущего вопроса с ответом, который применяется .

API-интерфейс оболочки Native mongo, однако, не обеспечивает такойметод см. метод help() в прототипе объекта DBQuery. :

> db.collection.find().help()
find() modifiers
        .sort( {...} )
        .limit( n )
        .skip( n )
        .count() - total # of objects matching query, ignores skip,limit
        .size() - total # of objects cursor would return, honors skip,limit
        .explain([verbose])
        .hint(...)
        .showDiskLoc() - adds a $diskLoc field to each returned object

Cursor methods
        .forEach( func )
        .map( func )
        .hasNext()
        .next()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...