MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak pobrać dane z MongoDB do prostej tablicy za pomocą Node.JS i Mongoose?

Możesz przejść do trasy struktury agregacji, która może spłaszczyć tablice za pomocą $unwind operator. Spowoduje to wygenerowanie nowego rekordu dla każdego elementu pola danych listy, do którego zastosowano unwind. Zasadniczo spłaszcza dane.

Po spłaszczeniu danych będziesz potrzebował $lookup operator do "dołączenia" do products pole do products kolekcja. Powtórz ten proces dla schematu zagnieżdżonych owoców.

Zobaczmy przykład (nieprzetestowany), aby lepiej to zrozumieć

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);
})

ZASTRZEŻENIE :Powyższy kod jest nieprzetestowanym kodem, który służy jedynie jako przewodnik przy założeniu, że uruchamiasz kod w środowisku testowym z najnowszymi wersjami MongoDB i mongoose, które obsługują $lookup operator AND, że możesz wykonać to samo zapytanie agregujące w powłoce mongo.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregacja MongoDB w zakresie

  2. Jak dodać administratora do Mongo w wersji 2.6?

  3. Sterownik MongoDB-Java:Złap wyjątek, gdy wstawienie nie powiedzie się

  4. Funkcje definiowane przez użytkownika Mongo i redukcja mapy

  5. Dane geoprzestrzenne $w obrębie bieżącej wartości pola dokumentu