Длина поля массива документа запроса Mongodb без выборки массива - PullRequest
0 голосов
/ 13 декабря 2018

Предположим, у меня есть коллекция с полем массива:

{
  title: String,
  users: [String],
}

Теперь мне нужно запросить список документов из коллекции, используя только длину users в каждом из них, без фактическойэлементы в массиве users (поскольку он может быть большим, его не стоит извлекать из базы данных и считать длину):

Collection.find({}).sort({ _id: -1 })

Возможно ли это?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете использовать $size оператор агрегации, чтобы найти длину массива users

db.collection.aggregate([
  { "$project": { "userLength": { "$size" :"$users" }}}
])

Если вы хотите найти все users длина массива существует в базе данных

db.collection.aggregate([
  { "$group": {
    "_id": null,
    "allUsersArrayLength": { "$sum": { "$size": "$users" }}
  }}
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...