Хочется странного

25 views
Skip to first unread message

Владимир Ластовка

unread,
Jul 22, 2014, 3:01:52 AM7/22/14
to mongodb-us...@googlegroups.com
Есть коллекция типа:

{
    "_id" : ObjectId(),
    "i" : 1,
    "f" : "function (n){return n;}"
},
{
    "_id" : ObjectId(),
    "i" : 2,
    "f" : "function (n){return n*2;}"
}

Строю запрос:

var n={i:1};
db.col1.find(n).forEach(function(doc){db.eval(doc.f,n.i);})

В ответ - тишина

Собственно задача: прицепить функцию, которая уже собственно будет генерировать ответ в зависимости от выбранного документа, с учетом данных запроса

Буду благодарен за помощь

P.S. вместо return пробовал print, не помогло


Serge Matveenko

unread,
Jul 22, 2014, 6:10:16 AM7/22/14
to mongodb-us...@googlegroups.com
может помочь map/reduce, очень уж им тут "пахнет"

читаем http://docs.mongodb.org/manual/reference/method/db.eval/ и обращаем внимание на lock.

там же читаем, что есть и другие способы запускать серверный код http://docs.mongodb.org/manual/core/server-side-javascript/




--
You received this message because you are subscribed to the Google Groups "MongoDB по-русски" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user-rus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Serge Matveenko
mailto: se...@matveenko.ru
github: http://lnkfy.com/1
linkedin: http://lnkfy.com/S

Владимир Ластовка

unread,
Jul 22, 2014, 2:40:04 PM7/22/14
to mongodb-us...@googlegroups.com
map-reduce все таки немного для другого. а эту ситуацию я победил, заработало когда добавил print
var n={i:1};
db.col1.find(n).forEach(function(doc){print(db.eval(doc.f,n));})

вторник, 22 июля 2014 г., 11:01:52 UTC+4 пользователь Владимир Ластовка написал:

Serge Matveenko

unread,
Jul 22, 2014, 2:54:46 PM7/22/14
to mongodb-us...@googlegroups.com
ну, т.е. все работало, просто результат никуда не выводился;)


--
You received this message because you are subscribed to the Google Groups "MongoDB по-русски" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user-rus...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages