MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да получите данни от MongoDB до прост масив с помощта на Node.JS и Mongoose?

Можете да преминете към маршрута на рамката за агрегиране, която има капацитета да изравнява масивите чрез $unwind оператор. Това ще генерира нов запис за всеки един елемент от полето с данни на списъка, към което се прилага отвиване. По същество изравнява данните.

След изравняване на данните ще ви е необходим $lookup оператор за извършване на „присъединяване“ към products поле към products колекция. Повторете процеса за схемата на вложените плодове.

Нека видим пример (непроверен), за да разберем това по-добре

var Schema = require('../model/schema');
Schema.Shop.aggregate([
    { "$unwind": "$products" },
    {
        "$lookup": {
            "from": "products",
            "localField": "products",
            "foreignField": "_id",
            "as": "product"
        }
    },
    { "$unwind": "$product" },
    { "$unwind": "$product.fruits" },
    {
        "$lookup": {
            "from": "fruits",
            "localField": "product.fruits",
            "foreignField": "_id",
            "as": "fruits"
        }
    },  
    {
        "$project": {
            "nameShop": 1,
            "nameProduct": "$product.nameProduct",
            "nameFruit": "$fruits.nameFruit",
            "price": "$fruits.price",
        }
    }
]).exec(function (err, result){
    if (err) throw err;
    console.log(result);
})

ОТКАЗ ОТ ОТГОВОРНОСТ :Горното е нетестван код, който служи само като ръководство, като се направят няколко предположения, че изпълнявате кода в тестова среда с най-новите версии на MongoDB и mongoose, които поддържат $lookup оператор И, че можете да изпълните същата заявка за агрегиране в mongo shell.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Защо моята колекция.find() не работи в meteor, а работи в robomongo?

  2. Как мога да хоствам собствен сървър за анализиране на Heroku, използвайки MongoDB?

  3. Търсене на Morphia чрез Id

  4. Задайте изчакване на Mongo в Spring Boot

  5. Как да добавя нови обекти в вложен масив за mongodb с помощта на node.js?