作者:mobiledu2502895417 | 来源:互联网 | 2014-05-28 16:53
1.1查询返回指定的键:--先查询全部的键如下:db.person.find(){_id:ObjectId(4f508eeff536645151bca18c),age:1}{_id:ObjectId(4f508e7bf536645151bca18a),name:tangke,age:21}。--再查询返回指定的键如下:
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也可以用来查询指定偏移量的数据:
--上面的语句表达的意思是跳过前二十三条数据,然后查询十条数据。