Chinaunix首页 | 论坛 | 博客
  • 博客访问: 187932
  • 博文数量: 92
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-04 21:12
文章分类
文章存档

2013年(92)

我的朋友

分类: 信息化

2013-05-20 05:35:46

我感触在运用库的时分运用的最多的是查询,所以学好了查询,我们将来做开发的时分会很顺手,很简单。相同mongodb供应了健壮的查询功用,我在这里尽量的详细的讲了解这些查血,如果哪里差错还请大虾指出。 查找某集结全部文档 在mongodb中查询运用find方法,运用方法是db.集结名.find({}),find方法的参数是一个json方针,更得当说是bson方针,可是如果有人说json方针的话你了解了  就可以了。我们运用find方法的时分,如果没有传递参数那便是传递的一个空json,也便是查询集结中的全部文档。如下: > db.user.find()
{ "_id" : ObjectId("5198c286c686eb50e2c843b2"), "name" : "user0", "age" : 0 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b3"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b4"), "name" : "user2", "age" : 2 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b5"), "name" : "user3", "age" : 3 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b6"), "name" : "user4", "age" : 4 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b7"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b8"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b9"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5198c286c686eb50e2c843ba"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5198c286c686eb50e2c843bb"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5198c286c686eb50e2c843bc"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5198c3cac686eb50e2c843bd"), "name" : "user0", "age" : 20 } 条件查询 已然find有参数那我们就可以给其传递参数,如下我们查询name为user0的文档: > db.user.find({name:"user0"})
{ "_id" : ObjectId("5198c286c686eb50e2c843b2"), "name" : "user0", "age" : 0 }
{ "_id" : ObjectId("5198c3cac686eb50e2c843bd"), "name" : "user0", "age" : 20 } 回来文档的某些值 这里我们找到了name为user0的文档,可是有时分我们只想获得这个文档的某几个值,这时分我们就可以给find传第二个参数,这里的参数同第一个相同都是json。我们只想获得age的值,可以如下编写: > db.user.find({name:"user0"},{age:1})
{ "_id" : ObjectId("5198c286c686eb50e2c843b2"), "age" : 0 }
{ "_id" : ObjectId("5198c3cac686eb50e2c843bd"), "age" : 20 } 不让文档闪现某些值 看上面的代码我们给age设置为1,标明我们需要得到age的值,如果我们不想要age的值,我们可以将其设置为0。相同true、false和1、0在这里效果相同,还有一点在mongodb这个当地运用的数字非0就代表真,可是不建议运用其他的数字,我们可以运用如下的方法去掉age的值: > db.user.find({name:"user0"},{age:0})
{ "_id" : ObjectId("5198c286c686eb50e2c843b2"), "name" : "user0" }
{ "_id" : ObjectId("5198c3cac686eb50e2c843bd"), "name" : "user0" } 条件表达式 在mongodb中可以运用条件表达式, <=,>=,这里没有=,因为向上面那样的查询便是=的效果,前面的字符对应mongodb中的方法为$.lt,$.gt,$lte,$gte。 我们查询年岁大于5的用户,如下: > db.user.find({age:{$gt:5}})
{ "_id" : ObjectId("5198c286c686eb50e2c843b8"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b9"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5198c286c686eb50e2c843ba"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5198c286c686eb50e2c843bb"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5198c286c686eb50e2c843bc"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5198c3cac686eb50e2c843bd"), "name" : "user0", "age" : 20 }查找年岁大于等于5的用户,如下: > db.user.find({age:{$gte:5}})
{ "_id" : ObjectId("5198c286c686eb50e2c843b7"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b8"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b9"), "name" : "user7", "age" : 7 }
{ "_id" : ObjectId("5198c286c686eb50e2c843ba"), "name" : "user8", "age" : 8 }
{ "_id" : ObjectId("5198c286c686eb50e2c843bb"), "name" : "user9", "age" : 9 }
{ "_id" : ObjectId("5198c286c686eb50e2c843bc"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("5198c3cac686eb50e2c843bd"), "name" : "user0", "age" : 20 }相同$gt/$.gte跟上面的运用方法相同。 limit束缚回来的文档的数量 在这里介绍一下limit方法,这个方法是束缚回来的文档的数量。运用如下: > db.user.find({age:{$gte:5}}).limit(3)
{ "_id" : ObjectId("5198c286c686eb50e2c843b7"), "name" : "user5", "age" : 5 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b8"), "name" : "user6", "age" : 6 }
{ "_id" : ObjectId("5198c286c686eb50e2c843b9"), "name" : "user7", "age" : 7 }与上面的比较只闪现了三条数据。  
阅读(783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~