设为首页 加入收藏

TOP

MongoDB简单查询操作符(非聚合操作)(二)
2015-11-21 01:42:25 来源: 作者: 【 】 浏览:1
Tags:MongoDB 简单 查询 操作 聚合
ize: 用于某个数组类型的key对应值的数量满足要求。

用法示例:筛选出来包含数组元素个数为3的文档。
db.op_test.find({"values":{$size : 3}})
评论(Comments)相关操作

$comment: 在查询、更新或其他操作执行过程中,可以通过添加$comment操作符添加评论。改评论会被记录在日志中,用于后续分析。

用法示例
db.collection.find( { , $comment:  } )
地理位置(Geospatial)相关操作

$geoWithin: 这个操作符基于2d 空间索引,首先要针对文档的某个字段建立一个2d的空间索引,然后利用此操作符,可以在一个2d空间范围内指定一个多变形,$geoWithin操作符就是查询出包含在多变形范围内的点。

详见:http://docs.mongodb.org/manual/reference/operator/query/geoWithin/#op._S_geoWithin

$geoIntersects: 同样基于2d空间索引,计算当前的空间范围和指定的geo多变形取交集。

详见:http://docs.mongodb.org/manual/reference/operator/query/geoIntersects/#op._S_geoIntersects

$near :基于2d空间索引,指定一个点,返回该点有近及远的所有的点。

详见:http://docs.mongodb.org/manual/reference/operator/query/near/#op._S_near

$nearSphere: 基于2d空间索引,指定一个点,由近及远的返回所有的点,和$near操作符不同的是计算距离的方式 $nearSphere计算的是球面距离。$near计算的是坐标距离。

投影相关操作

$ : 对你们看错,就只是一个$操作符,如果文档中某个value是数组类型,通过 $ 操作符可以指定数组字段的投影,返回数组字段中第一个匹配的那个元素,相当于截断了原来的整个数组,只返回第一个值。

用法示例:(会返回values数组中,第一个和"a"相等的元素,也就是返回"a")
db.op_test.find({"values":{$eq:"a"}},{"values.$":1})
返回结果如下:
{ "_id" : ObjectId("551117417cbfa0a55db5c5b9"), "values" : [ "a" ] }

$elemMatch : 这个操作符上面数组操作有涉及,其另外一个效果就是,在嵌套文档的应用中,返回数组中第一个符合条件的文档,可以限定多种组合条件。

详见:http://docs.mongodb.org/manual/reference/operator/projection/elemMatch/#proj._S_elemMatch

$meta : 和全文索引 text index 组合使用,针对一个带有全文索引的元素,指定改操作符,可以返回和查询条件相似的分数,分数越高,匹配度越高。

用法示例:
db.op_test.find({"$text":{$search:"steven",$language:"en"}},{score:{$meta:"textScore"}})
执行结果:
{ "_id" : ObjectId("550fdba3c118f1b20bd51a9f"), "name" : "steven", "age" : 20, "score" : 1.1 }

$slice : 数组类型字段的投影操作,返回原来数据的一个子集.针对一个数组,其有如下几种返回子集的方式:

用法示例: 返回博客的前10条评论
db.blog.find({"comments":{"$slice":10}}) 

用法示例: 返回博客的后10条评论
db.blog.find({"comments":{"$slice":10}}) 

用法示例: 返回博客跳过前10条,然后返回第11 ~ 15条
db.blog.find({"comments":{"$slice":[10,5]}})
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mongoCRUD数据操作符汇总 下一篇工欲善其事,必先利其器――利用P..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: