запрос для получения нескольких объектов в массиве в mongodb

Предположим, у меня есть массив объектов, как показано ниже.

"array" : [ 
    {
        "id" : 1
    }, 
    {
        "id" : 2
    }, 
    {
        "id" : 2
    }, 
    {
        "id" : 4
    }
]

Если я хочу получить несколько объектов ({id: 2}) из этого массива запрос агрегации выглядит следующим образом.

db.coll.aggregate([{ $match : {"_id" : ObjectId("5492690f72ae469b0e37b61c")}}, { $unwind : "$array"}, { $match : { "array.id" : 2}}, { $group : { _id : "$_id", array : { $push : { id : "$array.id"}}}}  ])

Выход вышеупомянутой агрегации

   {
        "_id" : ObjectId("5492690f72ae469b0e37b61c"),
        "array" : [ 
            {
                "id" : 2
            }, 
            {
                "id" : 2
            }
        ]
    }

Теперь вопрос в следующем: 1)несколько объектов из массива можно использоватьнаходить() в MongoDB?

2) Что касаетсяспектакль, агрегация является правильным способом сделать? (Потому что нам нужно использоватьчетыре оператора трубопровода)

3) Можем ли мы использовать манипуляции с Java (зацикливание массива и хранить только объекты {id: 2}), чтобы сделать это послеfind ({"_ id": ObjectId ("5492690f72ae469b0e37b61c")}) запрос? Потому что find когда-то получит документ и сохранит его в оперативной памяти. Но если мы используем агрегирование, для получения выходных данных необходимо выполнить четыре операции в оперативной памяти.

Почему я задал вопрос 3): предположим, что если тысячи клиентов обращаются одновременно, то оперативная память будет перегружена. Если это сделано с использованием Java, меньше задач на оперативной памяти.

4)Как долго рабочий набор будет в оперативной памяти??

Правильно ли мое понимание ???

Пожалуйста, поправьте меня, если я ошибаюсь.

Пожалуйста, предложите мне иметь правильное понимание этого ..

Ответы на вопрос(1)

Ваш ответ на вопрос