2016-02-03 4 views
1

У меня есть две коллекцииMongoDB присоединиться к метеору

Продукты

"_id" : "1", 
    "Product" : "Phone", 
    "Godown" :"Godown1", 
    "Info" : [ 
      { 
        "Type":"iphone", 
        "Quantity" : "10", 
        "Price" : "30000" 
      }, 
      { 
        "Type":"Samsung", 
        "Quantity" : "10", 
        "Price" : "30000" 
      } 
      ]}) 

и продажи

"_id" : "5551", 
"Product" : "Phone", 
"Godown" :"Godown1",   
"Type":"iphone", 
"Quantity" : "10", 
"Price" : "30000" 

Если я хочу объединить эту коллекцию в один и сохранить его в переменном это возможно?

ответ

2

Как правило, это не необходимо, но проблема моделирования данных. Спросите себя, чего вы действительно хотите достичь. Обычно, запрашивая данные, относящиеся к сводится к

Для далиX, что связанная с этим Y?

По вашему примеру:

Для "Info.Type" == iphone, что связанная с этим документом продажи?

Что с точкой зрения оболочки будет легко найти с

db.sales.find({"Type":"iphone"}) 

Теперь, когда у вас есть Products документа и связанных с этим Sales документа доступен, вы можете объединить их в коде для доставки клиент, например. Одна из моих мантры MongoDB

Сохраните логику, в которой она принадлежит, - ваш код.

1

Вы можете использовать MapReduce: https://docs.mongodb.org/manual/core/map-reduce/#MapReduce-Outputoptions

Для получения дополнительной информации см этот ответ: MongoDB: Combine data from multiple collections into one..how?

Чтобы получить доступ к сырым коллекции/дб использовать rawCollection() на Mongo.Collection - http://info.meteor.com/blog/meteor-104-mongo-cordova-template-subscriptions