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

Làm cách nào để bạn tính tổng các giá trị trong một đối tượng là một tài liệu con lồng nhau trong mongodb bằng cách sử dụng node.js?

Tài liệu sẽ được làm việc ở bên dưới. Nó là các đối tượng lồng nhau:một đối tượng (các cặp khóa-giá trị với giá trị là 100) được lồng trong một đối tượng ('0') (đối tượng này được viết dưới dạng chuỗi) và đối tượng này được lồng bên trong một đối tượng khác ("japanese3"). Tên người dùng được sử dụng như một truy vấn để lấy đúng tài liệu.

{ japanese3: 
   { '0': 
     {"japanese3a": 100,  "japanese3b": 100,  "japanese3c": 100} 
   } 
}

Mục tiêu là tổng các giá trị số trong đối tượng lồng nhau sâu nhất, do đó, kết quả mong muốn là "300".

Tập lệnh là:

         .aggregate([
           {$match: {username: username}}, //finds the document by username
           {$set: {"japanese_array":{$objectToArray: "$japanese3.0"}}}, // all fields have the same name now (k, v)
           {$project: {_id:0, total:{$sum: "$japanese_array2.v"}}}// sum up the "v" fields                                     
       ])
        .toArray(function(err, result){
          if (err)
            console.log("Failed");
            console.log(result); 
            res.send({ status: true, msg: result[0].total}); //result shows up as a number, in this case: 300
    });                            
 });



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để trả về phần tử mà tôi đang tìm kiếm bên trong một mảng lồng nhau?

  2. Tạo số tăng dần với mongoDB

  3. Cách lấy db.currentOp () từ trình điều khiển C # - mongodb

  4. MongoDB 2.6 Chỉ mục thiết lập, truy vấn bằng cách sử dụng $ hoặc, $ in, với giới hạn và sắp xếp

  5. Thứ tự của các thuộc tính được duy trì như thế nào để sắp xếp trong mongodb?