我有一個mongodb數據庫,其中包含域的記錄,以及每個已經看到的「點擊數」的整數。在存儲過程中的Mongodb處理 - 在JavaScript中的BSON到JSON
record =
{
"dom" : "Somedomain.com",
"hits" : 23
}
我想寫一些mongodb存儲過程來處理服務器上的這些記錄。 MongoDb可以在JavaScript中存儲過程。
我想(給一個簡單的例子)得到兩個域的點擊數的聚合。在Python/pymongo中,我可以很輕鬆地做到這一點 - 我可以獲取db.find({「dom」:「domainname.com」))這兩個域的記錄,將返回的記錄解析爲JSON,提取命中數字,然後添加它們。
但是,我似乎無法在JavaScript中做同樣的事情。部分問題似乎是找到返回BSON,而不是JSON,似乎沒有原生的方式來轉換它。
> This is in the Mongo Shell, which is mostly javascript.
> var r = db.test_collection.find({dom:"somedomain.com"},{hits:true,_id:false})
> r
{ "hits" : 1043 }
> var j = JSON.parse(r)
2016-03-03T17:27:52.046-0500 SyntaxError: Unexpected token D
> var r = db.test_collection.find({dom:"somedomain.com"},{hits:true,_id:false}).valueOf()
> r
{ "hits" : 1043 }
> var j = JSON.parse(r)
2016-03-03T17:27:52.046-0500 SyntaxError: Unexpected token D
這種「的SyntaxError」的來源似乎是BSON VS JSON
> var r = db.test_collection.find({dom:"somedomain.com"},{hits:true,_id:false}).valueOf()
> r.hits
>
我不能讓「命中」價值在哪裏我可以用它。
我可以用Pymongo在Python中輕鬆地做到這一點,但不是在mongo shell中,也不在javascript中。
我想存儲的JavaScript程序能夠從數據庫檢索值,並處理 他們,最後返回一個結果。但我無法得到實際的價值(在這種情況下命中數) 這樣做。任何人?
mongodb不支持存儲過程。我會建議用一些示例mongodb文檔來詳細說明你的問題。同時發佈您期望從您正在嘗試執行的操作 – Saleem