Как получить данные из двух коллекций одновременно в MongoDB? - PullRequest
0 голосов
/ 19 мая 2018

например.У меня есть две коллекции (то есть C1, C2) обе коллекции имеют одинаковые столбцы (то есть _id, Message, Date), и я хочу получить только 50 документов из C1 и C2 в порядке возрастания даты.

Я получаю данные только из одной коллекции, используя следующий запрос для mongo shell

db.C1.find({"date" : { "$gt" : ISODate("2018-05-18T00:00:00.203+0000")}})
 .sort({ "date" : 1.0 }).limit(50);

, но мне нужны данные из обеих коллекций.

1 Ответ

0 голосов
/ 19 мая 2018

Вам нужно выполнить два разных запроса для извлечения данных из двух коллекций, используя запрос поиска:

db.C1.find({"date" : { "$gt" : ISODate("2018-05-18T00:00:00.203+0000")}}) .sort({ "date" : 1.0 }).limit(50);

db.C2.find({"date" : { "$gt" : ISODate("2018-05-18T00:00:00.203+0000")}}) .sort({ "date" : 1.0 }).limit(50);

Вы также можете рассмотреть возможность использования MongoDB $ lookup для объединения данных из двух коллекций.чужое поле в другой коллекции:

db.C1.aggregate([
   {
     $lookup:
       {
         from: "C2",
         localField: "date",
         foreignField: "date",
         as: "C2_data"
       }
  }
])
...