Я тестирую функцию группировки в mongodb.
Групповая функция принимает объект в качестве аргумента.Внутри объекта у них есть ключ с именем cond
, значение которого можно использовать в качестве запроса для сопоставления документов.
Я передаю правильный запрос, который соответствует нескольким документам.Но группировка возвращает только последний найденный документ.Я думаю, что мне здесь чего-то не хватает, чтобы функция group
возвращала все результаты сопоставленных документов.
Я выполнил следующие шаги:
db.test.insert({user:{name:"xxxx1"}});
db.test.insert({user:{name:"xxxx2"}});
db.test.insert({user:{name:"xxxx3"}});
db.test.insert({user:{name:"xxxx4"}});
db.test.insert({user:{name:"xxxx5"}});
db.test.insert({user:{name:"xxxx6"}});
db.test.group({
initial:{name:'', id:''},
reduce:function(d, o){o.name = d.user.name; o.id=d._id;},
finalize:function(o){},
cond:{"user.name":/^x/}
});
Приведенная выше команда возвращает
[
{
"name" : "xxxx6", "id" : ObjectId("4edf72baec65faac52976e72")
}
]
Это последний вставленный документ.
Что мне сделать, чтобы получить все подходящие результаты!?
Спасибо