Как запросить всю информацию, связанную с одной записью? - PullRequest
0 голосов
/ 11 декабря 2018

Как написать запрос, чтобы получить только информацию, относящуюся к Карлу?

      { 
     "t" : 0,
    "member" : [
                     {   "name": "Carl",
                            "ad": 
                           {
                                "firstline" : 123,
                                "secondline": 456
                            }
                       },
                     {   "name": "John",
                            "ad": 
                           {
                                "firstline" : 345,
                                "secondline": 1256
                            }
                       }
                       ]
}
{
  "t" : 1,
    "member" : [
                     {   "name": "Carl",
                            "ad": 
                           {
                                "firstline" : 1323,
                                "secondline": 4536
                            }
                       },
                     {   "name": "John",
                            "ad": 
                           {
                                "firstline" : 3245,
                                "secondline": 123456
                            }
                       }
                       ]
}

Желаемый результат:

    { 
         "t" : 0,
        "member" : [
                         {   "name": "Carl",
                                "ad": 
                               {
                                    "firstline" : 123,
                                    "secondline": 456
                                }
                           }
                           ]
}
{

        "t" : 1,
        "member" : [
                         {   "name": "Carl",
                                "ad": 
                               {
                                    "firstline" : 1323,
                                    "secondline": 4536
                                }
                           }                 
                           ]
    }

Что я пробовал:

db.people.find("member.name" :"Carl")

Но он не выдал нужную информацию, и при наличии большего t данные не в хронологическом порядке.И при экспорте данных в новый файл JSON информация теряет свою структуру, что означает, что между записями нет новых строк.Есть идеи, как решить эту проблему?

1 Ответ

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

Вы можете использовать $ elemMatch (проекция) оператор для проекционной части вашего find() метода, чтобы указать условие фильтрации массива:

db.people.find({ "member.name": "Carl" }, { member: { $elemMatch: { name: "Carl" } }, t: 1 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...