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

Không thể tính toán thời gian trung bình

Theo nhận xét, vấn đề của bạn là một trong những hình thành JavaScript hợp lệ. Ngoài ra, giá trị "chìa khóa" của bạn dường như không phải là những gì bạn thực sự muốn. Tuy nhiên, có tổng hợp chức năng mà bạn nên yêu thích hơn so với việc sử dụng "nhóm"

db.results.aggregate([
    { "$match": {
        "$and": [
            { "profile.Zend_Http_Client_Adapter_Socket::read==>fgets.wt": {
                "$exists": true 
            }},
            { "profile.Zend_Http_Client_Adapter_Socket::read==>fgets.wt": { 
               "$not": { "$type": 2 }
            }}
        ]
    }},
    { "$group": {
        "_id": null,
        "total": { "$sum": 
            "$profile.Zend_Http_Client_Adapter_Socket::read==>fgets.wt"
        },
        "count": { "$sum": 1 }
    }},

    { "$project": {
        "_id": 0,
        "avg": { "$divide": [ "$total", "$count" ] }
   }}
])

Loại đường ống tổng hợp của các chức năng đi trước đã giới thiệu trước đó như groupdistinct . Và đối với tất cả các hoạt động ngoại trừ tầm thường, nên là sự lựa chọn ưa thích của bạn.

Nó sẽ chạy nhanh hơn nhiều vì nó được xử lý bằng mã gốc chứ không phải công cụ JavaScript.

Ngoài ra, hãy xem biểu đồ ánh xạ SQL tới tổng hợp trong tài liệu.

Sự cố với dữ liệu

Mẫu của bạn không hoàn chỉnh lắm. Để sắp xếp tất cả các vấn đề, tôi phải đưa ra một tài liệu như sau:

{
    "profile": {
        "Zend_Http_Client_Adapter_Socket::read==>fgets": {                                           
            "ct" : 3,
            "wt" : 54782314,
            "cpu" : 16001,
            "mu" : 83288,
            "pmu" : 49648
        },
    }
}

Ngoài ra, ví dụ tài liệu của bạn có một số trường không hợp lệ trong đó:

{
    "_id" : ObjectId("532a2a986803faba658b456b"),
    "profile" : {
        "main()==>register_shutdown_function" : {
            "ct" : 1,
            "wt" : 13,
            "cpu" : 0,
            "mu" : 1568,
            "pmu" : 1000
        },
        "main()==>load::htdocs/index.php" : { <-- Invalid
            "ct" : 1,
            "wt" : 17,
            "cpu" : 0,
            "mu" : 1736,
            "pmu" : 4296
},

Vì vậy, trường đó không thể tồn tại vì nó có . trong tên trường, cho tài liệu phụ rõ ràng lý do không được phép.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm thế nào để hiển thị dữ liệu vô danh, tùy ý trong HTML với node.js / mongodb

  2. Tài liệu nhúng so với tài liệu tham khảo trong mô hình thiết kế mongoose?

  3. Mô hình hóa dữ liệu Mongo / cập nhật để bỏ phiếu (lên và xuống)

  4. Phát triển cơ sở dữ liệu Python và MongoDB

  5. Spring-data-mongodb kết nối với nhiều cơ sở dữ liệu trong một phiên bản Mongo