其次,对mondb主要
功能组功能的
发现,这是相当复杂的发现(),跳过(),不同等。
测试数据:
复制代码代码如下所示:
> > db.fruit.find();
{_id :1,catery :果
{_id :2,catery :果
{_id :3,catery :果
{_id :4,catery 素食
{_id :5,catery 素食
1。据catery分组
复制代码代码如下所示:
> > db.fruit.group(
{
关键词:{ 1 } catery,
减少:功能(obj,沪指){
Prev.items.push(对象的
名字);
},
初始值:{项目}:{ }
}
);
{
{
catery :果
项目:{
苹果
桃
香蕉
}
},
{
catery 素食
项目:{
玉米
西兰花
}
}
}
PHP代码如下所示:
复制代码代码如下所示:
$键=阵列(catery = 1);
初始值=数组()=(数组);
为减少= 功能(obj,沪指){ prev.items.push(obj。名字)};};
$ = $集合>组($键,$初始值,$减少);
print_r($ G); / /结果如下。
阵列
(
{ } = >阵列用
(
{ 0 }数组
(
{ catery } = >水果
{项目>数组
(
{ 0 } >苹果
{ 1 } >桃
{ 2个>香蕉
)
)
{ 1 }数组
(
{ catery } = >蔬菜
{项目>数组
(
{ 0 }玉米
{ 1 }西兰花
)
)
)
{计数} = 5
{ 2
{ ok > 1
)
2。按catery统计计数
复制代码代码如下所示:
> > db.fruit.group(
{
关键词:{ 1 } catery,
条件:{ _id:{ 2 } } $ GT,
减少:功能(obj,沪指){
Prev.items.push(对象的名字);
上期数+ +;
},
初始:项目:计数:0 } { }。
}
);
{
{
catery :果
项目:{
香蕉
},
计数:1
},
{
catery 素食
项目:{
玉米
西兰花
},
计数:2
}
}
PHP代码如下所示:
复制代码代码如下所示:
$键=阵列(catery = 1);
美元的初始=阵列(项目),数组(= count= > 0);
为减少= 功能(obj,沪指){。
Prev.items.push(对象的名字);。
上期数+ +;。
};
条件=阵列('condition美元的阵列(_id =阵列($ GT = 2)));
$ = $集合>组($键,初始值,$减少,$条件);
print_r($ G); / /结果如下。
阵列
(
{ } = >阵列用
(
{ 0 }数组
(
{ catery } = >水果
{项目>数组
(
{ 0个>香蕉
)
{计数} = 1
)
{ 1 }数组
(
{ catery } = >蔬菜
{项目>数组
(
{ 0 }玉米
{ 1 }西兰花
)
{计数} = 2
)
)
{计数} = 3
{ 2
{ ok > 1
)
3,使用聚合组
函数,它也很强。
复制代码代码如下所示:
> > db.fruit.aggregate(
{ $匹配:{ _id:{ 0 } } } $ GT,
{ $组:{ _id:catery美元,计数:{ 1 } }金额:美元,
{
排序:{计数:1 } }
});
{_id :果
{_id 素食
PHP代码如下所示:
复制代码代码如下所示:
cond =阵列(美元
(阵列
比赛('_id美元=数组的数组(GT=美元= 0)),
),
(阵列
$组=数组
_id= >的catery美元,
计算=数组($总和= 1),
),
),
(阵列
排序=数组(计数= - 1),
),
);
结果=美元美元收集->骨料(合条件);
print_r($结果); / /结果如下:
阵列
(
{结果数组
(
{ 0 }数组
(
{ _id } = >水果
{计数} = 3
)
{ 1 }数组
(
{ _id } = >蔬菜
{计数} = 2
)
)
{ ok > 1
)
有很多的选择
操作,在mondb,这里只是几个常见的函数表示。