资源描述:
《mongodb中几种不同查询方法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、浅谈MongoDB中几种不同查询方法1.findMongoDB使用find来进行查询.查询就是返回一个集合中文档的子集,子集合的范围从0个文档到整个集合.find的第一个参数决定了要返回哪些文档.其形式也是一个文档,说明要查询的细节.空的查询文档{}会匹配集合的全部内容.要是不指定查询文档,默认是{}.如:db.users.find()返回集合users中的所有内容.向查询文档中添加键值对,就意味着添加了查询条件.对绝大多数类型来说,整数匹配整数,布尔类型匹配布尔类型,字符串匹配字符串.2.指定返回的键有时并不需要返回文档中的所有键值对返回.可以通过find或findOne
2、的第二个参数来指定要返回的键.这样做能节省传输的数据量,又能节省客户端解码文档的时间和内存消耗.1db.users.findOne({"name":"refactor"},{"age":1,"sex":1})只会将键为_id,age,sex的数据返回."_id"键总是会被返回.也可以用第二个参数来剔除查询结果中的某个键值对.如:键name不会显示在返回的结果中YibinCityCitytracktrafficplanningisYibincityregionalrangewithintracktrafficsystemofonceintegration,andcitytra
3、cktrafficalsoisYibinCityCityintegratedtracktrafficsystemintheofpart,foraccurategraspcitytracktrafficresearchofobject1db.users.findOne({"name":"refactor"},{"name":0})只会将键为age,sex的数据返回."_id"键是不会返回的2db.users.findOne({"name":"refactor"},{"age":1,"sex":1,"_id":0})3.查询条件"$lt","$lte","$gt","$gte"
4、分别对应<,<=,>,>=如:查询age>=18<=30db.users.find({"age":{"$gte":18,"$lte":30}})向文档增加键birthday3db.users.update(4{"name":"refactor"},5{6"$set":7{8"birthday":newDate("1989/10/26")9}10}11)查询birthday日期是1990-1-1之前的人12db.users.find({"birthday":{"$lt":newDate("1990/01/01")}})使用"$ne"查出所有name不等refactor1的文档
5、,注意文档中不存在键name的文档也会被查出来13db.users.find({"name":{"$ne":"refactor1"}})使用or查询MongoDB可以使用"$in","$or"使用"$in"查询出pageViews为10000,20000的数据14db.users.find({pageViews:{"$in":[10000,20000]}})YibinCityCitytracktrafficplanningisYibincityregionalrangewithintracktrafficsystemofonceintegration,andcitytrac
6、ktrafficalsoisYibinCityCityintegratedtracktrafficsystemintheofpart,foraccurategraspcitytracktrafficresearchofobject"$in"可以指定不同类型的条件和值,如正在将用户的ID号迁移成用户名的过程中,要做到两者兼顾的查询:1db.users.find({"user_id":{"$in":[12345,"refactor"]}})这会匹配user_id为12345和"refactor"的文档.要是"$in"的数组只有一个值和直接匹配这个值效果是一样的.2db.user
7、s.find({"pageViews":{"$in":[10000]}})3db.users.find({"pageViews":10000})使用"$nin"返回与数组中所有条件都不匹配的文档如查出所有pageViews不等10000,20000的文档,注意文档中不存在键pageViews的文档也会被查出来4db.users.find({"pageViews":{"$nin":[10000,20000]}})"$in"能对单个键进行or查询.使用"$or"5db.users.find(6{7"$or":8[9{"