Morphia / MongoDB: как перебирать отдельные поля - PullRequest
0 голосов
/ 16 февраля 2011

Я бы хотел перебрать список отдельных полей в данном документе.Используя командную строку MongoDB, я могу своего рода получить то, что хочу, выполнив что-то вроде:

db.MyDoc.distinct("someField")

... за исключением того, что он возвращает все результаты в виде гигантского BSON.

Есть ли способ сделать это в Morphia и, кроме того, вернуть его как Iterable, чтобы все результаты не были сразу считаны в память?

Я представляю, что distinct() реализован как своего рода хэш-карта в памяти, что, вероятно, означает, что нет смысла пытаться перебирать результаты по частям, чтобы избежать одновременного хранения всех их в памяти.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2011

Даже если это поддерживается morphia, результатом отличительного является все еще один (bson) документ с массивом различных значений для поля результата.Это должно быть полностью прочитано в память, в основном.

2 голосов
/ 17 февраля 2011

это не поддерживается в Morphia в настоящее время. Есть запрос функции http://code.google.com/p/morphia/issues/detail?id=219&colspec=ID%20Type%20Stars%20Status%20Priority%20Milestone%20Owner%20Summary вы можете посмотреть.

...