本文地址:http://www.cnblogs.com/egger/archive/2013/06/14/3135847.html??欢迎转载 ,请保留此链接??? ????!
本文将介绍操作符的使用,配合操作符,我们可以执行更加复杂的操作。
目录
-
查询操作
- 集合查询方法 find()
- 查询内嵌文档
-
查询操作符(内含 数组查询)
- "$gt" 、"$gte"、 "$lt"、 "$lte"、"null查询"、"$all"、"$size"、"$in"、"$nin"、
- "$and"、"$nor"、"$not"、"$or"、"$exists"、"$mod"、"$regex"、"$where"、"$slice"、"$elemMatch"
?
?
1.1 集合查询方法 find()
db.collection.find() ?查询集合中文档并返回结果为游标的文档集合。
语法:db.collection.find(query, projection)
参数? 类型? 描述? query 文档 可选. 使用查询操作符指定查询条件 projection 文档 ?可选.使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略). 返回值: 匹配查询条件的文档集合的游标. 如果指定投影参数,查询出的文档返回指定的键?,"_id"键也可以从集合中移除掉。
注意:在mongo shell中我们不需要JavaScript游标处理方法就可以直接访问作为查询结果的文档集合。mongo shell默认返回游标中的前20条文档。当执行查询操作时,mongo shell直接自动的对游标执行迭代操作并显示前20条文档。输入"it"显示接下来的20条文档。
find的第一个参数是查询条件,其形式也是一个文档,决定了要返回哪些文档,空的査询文档{}会匹配集合的全部内容。要是不指定査询文档,默认就是{},如同SQL中"SELECT * FROM TABLENAME"语句。
//将返回集合中所有文档 db.collection.find() //或者 db.collection.find({})
第一个参数若为键/值对时,查询过程中就意味着执行了条件筛选,就如同我们使用Linq查询数据库一样。下面查询操作将返回user集合中age键值为16的文档集合。
//mongo db db.user.find({age:16}) //Linq to sql dbContext.user.select(p=>p.age==16)
上面的查询默认执行“==”操作(就如同linq中 p.age==16),文档中若存在相同键的值和查询文档中键的值相等的话,就会返回该文档。
第一个参数若包含多个键/值对(逗号分隔),则相当于查询AND组合条件,“条件1 AND条件2 AND…AND 条件N".例如查询年龄为28且性别为男性的文档集合:
//mongo db db.user.find({age:28,sex:"male"