У меня есть база данных mongodb, которая содержит записи доменов, и целое число «хитов» каждого из них было замечено.Обработка Mongodb в хранимых процедурах - BSON to JSON в javascript
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 против JSON
> var r = db.test_collection.find({dom:"somedomain.com"},{hits:true,_id:false}).valueOf()
> r.hits
>
Я не могу получить значение «хиты», где я могу его использовать.
Я могу сделать это тривиально в Python с Pymongo, но не в оболочке mongo, ни в javascript.
Я хочу, чтобы хранимые процедуры javascript могли извлекать значения из db и обрабатывать их , наконец, возвращая результат. Но я не могу добраться до фактического значения (в этом случае число ударов) . Кто угодно?
mongodb не поддерживает хранимые процедуры. Я предлагаю подробно обсудить ваш вопрос с некоторыми образцовыми документами mongodb. Также опубликуйте, что вы ожидаете от действий, которые вы пытаетесь выполнить. – Saleem