Mongodb $size操作符

Posted by 撒得一地 on 2016年3月31日 in Mongodb教程

$size 操作符匹配指定数组中元素个数和指定参数一致的文档,如:

db.collection.find({field:{$size:2}});

上面的查询将返回collection数据库中field字段是数组类型而且元素个数为2的文档。比如,查询结果可能为:{ field: [ red, green ] } 和{ field: [ apple, lime ] },但是不可能是 { field: fruit } 或 { field: [ orange, lemon, grapefruit ] }

如果想匹配field字段为1个元素的数组,可以将用 $size 操作符将参数设置为1,如下:

db.collection.find( { field: { $size: 1 } } );

$size 操作符不接受值的范围。当要输出基于 fields 字段含不同个数元素的文档时,可以创建一个计数器字段,当fields新增一个元素时则计算器加1。比如:

>db.test.find()
{$_id:1,counter:2,color:[red,green]}
{$_id:2,counter:1,color:[red]}
{$_id:3,counter:3,color:[red,green,blue]}

所以当你要输出color数组元素个数为1到2这个范围内的文档时,这个时候你就不能使用 $size 操作符了,因为它是不接受范围查询的,所以你可以通过 counter 字段来查:

>db.test.find({"counter":{$lte:2,$gte:1}})

当 $_id 为1的文档 color 数组新增一个元素时,这时候counter计算器也要进行修改,counter的值就是color数组元素的总个数。

本文地址:http://coderschool.cn/1764.html

上一篇:

下一篇:

相关推荐

网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.