【发布时间】:2011-12-08 01:21:30
【问题描述】:
我正在测试 mongodb 中的 grouping 功能。
group 函数接受一个对象作为参数。在对象中,它们有一个名为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")
}
]
它是最后插入的文档。
我应该怎样才能得到所有匹配的结果!?
谢谢
【问题讨论】:
标签: mongodb