MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Tidak dapat menghitung waktu rata-rata

Sesuai komentar, masalah Anda adalah salah satu dari membentuk JavaScript yang valid. Juga nilai "kunci" Anda tampaknya tidak sesuai dengan keinginan Anda. Namun ada agregat fungsi yang harus Anda sukai daripada penggunaan "grup"

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" ] }
   }}
])

Jenis pipa agregasi menggantikan fungsi yang diperkenalkan sebelumnya seperti group dan distinct . Dan untuk semua kecuali operasi sepele harus jadilah pilihan favorit Anda.

Ini akan berjalan lebih cepat serta diproses dalam kode asli dan bukan mesin JavaScript.

Lihat juga bagan pemetaan SQL ke agregasi dalam dokumentasi.

Masalah Dengan Data

Sampel Anda tidak terlalu lengkap. Untuk menyelesaikan semua masalah saya harus memasukkan dokumen seperti ini:

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

Juga contoh dokumen Anda memiliki beberapa bidang yang tidak valid di dalamnya:

{
    "_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
},

Jadi bidang itu tidak bisa ada karena memiliki . di nama bidang, yang untuk jelas sub-dokumen alasan tidak diperbolehkan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mendapatkan data dari array di luwak?

  2. Mengapa saya mendapatkan peringatan usang ini?! MongoDB

  3. Luwak menambahkan beberapa item ke database

  4. Bagaimana cara menerapkan kunci asing di database NoSql (MongoDB)?

  5. Dorong nilai ke dalam array database mongodb melalui (sails js) waterline