Монго БД запрос только получить один документ с внешним идентификатором - PullRequest
0 голосов
/ 19 сентября 2018

Допустим, у меня есть коллекция с этими документами: enter image description here

Два нижних документа имеют одинаковый firebaseUserId.Как сформировать запрос, который получает только один из двух документов с одинаковым firebaseUserId?Я хотел бы, чтобы документ, который он выбирает, был моим выбором, например, какой бы из них не имел наибольшего значения для поля 'testinnn'.

Я бы также выполнил запрос с другими фильтрами, например, где testinnn больше, чем число, например.Мне просто нужно, чтобы он решал, какой документ выбрать, если он работает на два документа с одинаковым firebaseUserId

Ответы [ 2 ]

0 голосов
/ 20 сентября 2018

Я нашел ответ здесь: https://stackoverflow.com/a/25893214/8594124

Сначала я отсортировал:

{
  testinnn: -1
}

Затем я получил первый:

{
  _id: "$firebaseUserId",
  owner_id: { 
   $first: "$owner_id"
  },
  testinnn: {
    $first: "$testinnn"
  }
}
0 голосов
/ 19 сентября 2018

Вы можете просто использовать sort () и ограничение для этого limit () примерно так:

db.collection.find({ firebaseUserId: "KnQEqsekY9XV3ayOx082xw8VQX2", "testinnn": { $gt: 1 }  /*add other filters as required*/ })
             .sort({ "testinnn": -1 /*sort by 'testinnn' descending */ })
             .limit(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...