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也可以用来查询指定偏移量的数据:

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

 

posted @ 2012-03-05 16:11  agile_work  阅读(3515)  评论(0编辑  收藏  举报