Запрос различных коллекций на нескольких серверах MongoDB - PullRequest
0 голосов
/ 03 июля 2018

У меня есть два экземпляра базы данных MongoDB: база данных A и база данных B. База данных A содержит коллекцию X. База данных B содержит коллекцию Y. Они имеют общий индекс, и можно предположить, что они имеют отношение один к одному.

Причиной такой настройки является строго деловое решение, и его нельзя изменить.

Чтобы ответить на API, их в конечном итоге необходимо объединить в один массив, который содержит новые объекты, содержащие информацию как из Collection X, так и из Collection Y. API позволяет фильтровать элементы данных в каждой коллекции. Как я могу запросить обе коллекции?

Лучшее «решение», которое я до сих пор придумал, - это извлечь коллекции из обеих баз данных, а затем объединить их в памяти, используя что-то вроде приведенного ниже Javascript (используя библиотеку Lodash):

_.map(collectionX, (item) => 
    _.extend(item, {
        _metadata: _.find(collectionY, {sharedId: item.sharedId})
    })
);

Есть ли лучший, более эффективный способ сделать такой запрос?

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