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

Gọi hàm bên trong tổng hợp mongodb?

Các chức năng bên ngoài không hoạt động với khung tổng hợp. Mọi thứ đều được phân tích cú pháp thành BSON trên đầu vào, vì vậy không có JavaScript hoặc bất kỳ thứ gì khác được phép. Tất cả điều này về cơ bản được xử lý từ định nghĩa "toán tử" BSON đến triển khai mã C ++ gốc nên nó thực sự nhanh chóng.

Điều này xảy ra là "chuyển đổi" logic mong đợi của bạn thành những gì mà khung tổng hợp có thể xử lý. Trên thực tế, có các toán tử "logic" như $or $and hoạt động trong ngữ cảnh này:

db.collection.aggregate([
    { "$project": {
       "_id": 1,
       "status": {
           "$cond": [
               { "$or": [
                   // Your first set of rules requires "false" for "flag1" or 
                   // "flag2" and "true" for "flag3"
                   { "$and": [
                       { "$not": [
                           { "$or": [ "$flag1", "$flag2" ] },
                       ]},
                       "$flag3"
                   ]},
                   // Your second set of rules requires "true" for "flag1" or 
                   // "flag2" and "false" for "flag3"
                   { "$and": [
                       { "$or": [ "$flag1", "$flag2" ] },
                       { "$not": [ "$flag3" ] }
                   ]},
               ]},
               "ok",
               "broken"
           ]
       }
    }}
])

Vì vậy, không có chức năng bên ngoài, chỉ thực hiện logic với các toán tử mà khung tổng hợp cung cấp. Ngoài các triển khai logic cơ bản còn có $not để "đảo ngược" ligic và $cond hoạt động như một "bậc ba" để cung cấp kết quả khác với true/false đánh giá.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lỗi truyền JSON.NET khi tuần tự hóa Mongo ObjectId

  2. Nhận tập lệnh được tạo trong trình điều khiển MongoDB C #

  3. Không thể nhận allowDiskUse:Đúng để làm việc với pymongo

  4. xác thực tùy chỉnh mongoose sử dụng 2 trường

  5. Định dạng một số dưới dạng phần trăm trong SQL