вот мой документMongoDB MongoEngine ListField получить отсчет() Len()
class Store(Document):
store_id = IntField(required=True)
items = ListField(ReferenceField(Item, required=True))
meta = {
'indexes': [
{
'fields': ['campaign_id'],
'unique': True
},
{
'fields': ['items']
}
]
}
Я не могу найти, как получить ListField Len \ счетчик с извлечения весь список мне нужно что-то вроде
documents.Store.objects.get(store_id=27).items.count()
Я нашел вай, как сделать это с помощью консоли Монго
db.store.find({"store_id" : 27})[0].items.length;
, но мне нужно через Mongoengine.
Может ли len (documents.Store.objects.get (store_id = 27) .items) получить все документы и подсчитать их через Python?
Возможный дубликат [Получение длины списка в MongoDB] (http://stackoverflow.com/questions/13958490/retrieving-the-length-of-a-list-in-mongodb) – Ross
Ваш пример в консоли также извлекает список предметов и получает длину - то же самое, что и mongoengine e Xample. Единственный способ сделать это - либо добавить поле счетчика (предварительно вычислить агрегацию), либо использовать структуру агрегации для проектирования и вычисления размера списка – Ross
, поэтому я добавил новое поле items_count = IntField (по умолчанию = 0) и как на add_to_set inc этот счетчик? –