mongodb查询(原创)

1.1查询返回指定的键:

--先查询全部的键如下:

> db.person.find()
{ "_id" : ObjectId("4f508eeff536645151bca18c"), "age" : 1 }
{ "_id" : ObjectId("4f508e7bf536645151bca18a"), "name" : "tangke", "age" : 21 }。

--再查询返回指定的键如下:

> db.person.find({},{"age":1})
{ "_id" : ObjectId("4f508eeff536645151bca18c"), "age" : 1 }
{ "_id" : ObjectId("4f508e7bf536645151bca18a"), "age" : 21 }。

以上需要解释的是:第一个参数是要指定查询的范围,第二个参数是要找到的键并按升序进行排列。

--还有一个小技巧:你如果不想返回这个_id,你可以这样做:

> db.person.find({},{"age":1,"_id":0})
{ "age" : 1 }
{ "age" : 21 }。

1.2mongodb中的查询符号:

$lt,$lte,$gt,$gte,$ne:这几个符号的意思不用解释了吧,用过html语言的人都知道。

另外还有$in,$nin,$or也不解释,你懂的。

1.3用正则表达式匹配查询条件:(这个我很喜欢,因为我学过perl,里面的正则表达式,很漂亮)

--没有使用正则式的查询

> db.person.find()
{ "_id" : ObjectId("4f508eeff536645151bca18c"), "age" : 1 }
{ "_id" : ObjectId("4f508e7bf536645151bca18a"), "name" : "tangke", "age" : 21 }

--使用正则表达式查出以name以t开头的文档并且不分大小写:

> db.person.find({"name":/^t*/i})
{ "_id" : ObjectId("4f508e7bf536645151bca18a"), "name" : "tangke", "age" : 21 }
---注:/^t/i,   表示以t字母开头,并且不分大小写的字符串。

1.4查询数组:

$all的用法:

现在数据库中有如下的数据:

> db.fruit.find()
{ "_id" : ObjectId("4f546dadcf486e7efbd41fcc"), "fruit" : [ "apple", "banana", "
orange" ] }
{ "_id" : ObjectId("4f546dd1cf486e7efbd41fcd"), "fruit" : [ "apple", "peach", "b
anana" ] };

--现在用$all进行查询,查出同时包括apple,peach的文档。

> db.fruit.find({"fruit":{"$all":["apple","peach"]}})
{ "_id" : ObjectId("4f546dd1cf486e7efbd41fcd"), "fruit" : [ "apple", "peach", "b
anana" ] };

$size: 用来查询符合长度符合的数组。

$slice:返回多少条键的记录;

$slice也可以用来查询指定偏移量的数据:

--上面的语句表达的意思是跳过前二十三条数据,然后查询十条数据。

 

转载于:https://www.cnblogs.com/agilework/archive/2012/03/05/2380590.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值