假设我想通过<?php if(($_SESSION['is_accepted']) == false): ?>
<div class="row" style="margin-top: 40px;margin-bottom: 40px">
<div class="form-horizontal">
<div class="col-sm-4 col-sm-offset-5">
<button class="btn btn-primary" onclick="window.location='<?php echo base_url('saveUpdate'); ?>'">Aceitar contrato</button>
</div>
</div>
</div>
<?php endif;?>
字段按MongoDb中的文档进行汇总和分组。
运行以下命令(默认情况下区分大小写):
Description
我的样本数据给了我1000个结果,这很好。
但现在我希望运行 不区分大小写的 查询(使用db['Products'].aggregate(
{ $group: {
_id: { 'Description': "$Description" },
count: { $sum: 1 },
docs: { $push: "$_id" }
}},
{ $match: {
count: { $gt : 1 }
}}
);
)会给我小于或等于1000的结果:
$toLower
但相反,我获得了超过1000个结果。那可能不对,可以吗?更常见的条目应该组合在一起,以产生更少的总分组...我认为。
那么可能我的聚合查询错了!这让我想到了我的问题:
如何执行MongoDb中不区分大小写的聚合分组?
答案 0 :(得分:3)
你接近不区分大小写的分组是正确的,所以也许你的观察不是吗? ;)
试试这个例子:
// insert two documents
db.getCollection('test').insertOne({"name" : "Test"}) // uppercase 'T'
db.getCollection('test').insertOne({"name" : "test"}) // lowercase 't'
// perform the grouping
db.getCollection('test').aggregate({ $group: { "_id": { $toLower: "$name" }, "count": { $sum: 1 } } }) // case insensitive
db.getCollection('test').aggregate({ $group: { "_id": "$name", "count": { $sum: 1 } } }) // case sensitive
你可能在某个地方有拼写错误?
documentation也说明了
$ toLower只对ASCII字符串有明确定义的行为。
也许这就是你在这里咬什么?