MongoDb, NodeJs - Как найти документ, выполнив поиск по id элемента массива - PullRequest
0 голосов
/ 14 июля 2020

Это моя модель: -

   "_id":{
      "$oid":"5f0dbca73ef98355649d7cc7"
   },
   "name":"Multiple Image test",
   
   "description":"Awesome",
   
   "price":{
      "$numberInt":"15000"
   },
   "images":[
      {
         "_id":{
            "$oid":"5f0dbca73ef98355649d7cc9"
         },
         "data":{
            "$binary":{
               "base64":"random buffer data",
               "subType":"00"
            }
         },
         "contentType":"image/jpeg"
      },
      {
         "_id":{
            "$oid":"5f0dbca73ef98355649d7cc8"
         },
         "data":{
            "$binary":{
               "base64":"Random buffer data",
               "subType":"00"
            }
         },
         "contentType":"image/jpeg"
      }
   ],
   
   
}
      
    

Теперь, как я могу получить доступ к конкретным данным изображения из поля images ?

Я использую mon goose js, поэтому какой запрос можно использовать и как его использовать для доступа к данным. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 июля 2020

А чтобы превратить комментарий Асири в нечто подходящее для вашего случая: вы используете оператор $ elemMatch: https://docs.mongodb.com/manual/reference/operator/query/elemMatch/

MyModel.find({'images': {$elemMatch: {_id: ObjectId("5f0dbca73ef98355649d7cc8")}}}

Возможно, вам не понадобится приведение к ObjectId. (Теперь вы можете догадаться, что я не проверял этот ответ, и мне за это очень жаль.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...