найти документ, который имел конкретные номера полей mongodb - PullRequest
0 голосов
/ 23 октября 2018

my documents

Возможно ли в mongodb выбрать только документ, содержащий 49 полей?Итак, я выбрал документ, который имел _id: ObjectId("5a4ad9c298767555dde892a2"), а затем имел 49 полей?

1 Ответ

0 голосов
/ 23 октября 2018

Вы можете использовать $ objectToArray , чтобы получить все поля объекта $$ROOT в виде массива ключей и значений.Затем вы можете использовать $ size , чтобы получить длину этого массива:

db.collection.aggregate([
    {
        $addFields: { numberOfFields: { $size: { $objectToArray: "$$ROOT" } } }
    },
    {
        $match: { numberOfFields: 49 }
    }
])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...