MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để lấy dữ liệu từ MongoDB sang mảng đơn giản bằng Node.JS và Mongoose?

Bạn có thể đi theo tuyến khung tổng hợp, có khả năng làm phẳng các mảng thông qua $unwind nhà điều hành. Thao tác này sẽ tạo một bản ghi mới cho từng và mọi phần tử của trường dữ liệu danh sách mà chương trình thư giãn được áp dụng. Về cơ bản, nó làm phẳng dữ liệu.

Sau khi làm phẳng dữ liệu, bạn sẽ yêu cầu $lookup toán tử để thực hiện "tham gia" trên products trường products thu thập. Lặp lại quy trình cho lược đồ các loại quả lồng nhau.

Hãy xem một ví dụ (chưa được kiểm tra) để hiểu rõ hơn về điều này

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

TUYÊN BỐ TỪ CHỐI :Trên đây là mã chưa được kiểm tra chỉ đóng vai trò hướng dẫn bằng cách đưa ra một số giả định rằng bạn đang chạy mã trong môi trường thử nghiệm với phiên bản MongoDB và mongoose mới nhất hỗ trợ $lookup toán tử AND mà bạn có thể thực hiện cùng một truy vấn tổng hợp trong mongo shell.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách xác định mêtích để nhập mongodb

  2. LỖI Mongodb:quy trình con không thành công, đã thoát với lỗi số 51

  3. mongo-go-driver:bộ lọc truy vấn OR / AND lồng nhau

  4. Phép chiếu trong Truy vấn mệnh đề Where của tài liệu được nhúng trong Bộ sưu tập MongoDB sử dụng C #

  5. Thư viện lời hứa mặc định của Mongoose không được chấp nhận trong ngăn xếp MEAN