序言
Mongodb的语法操作其实也没什么难度,但是第一次用还是需要花点时间。特此整理下操作的语法。且该语法针对原生的查询语法,不对应程序中的API。
从使用SQL的角度来学习如何对应到Mongodb上的语法上
参考资料:
基本语法
大于,小于,大于等于,小于等于
- $gt 大于 >
- $lt 小于 <
- $gte 大于或等于 >=
- $lte 小于等于 <=
db.collection.find({age:{$gt:18}}); //年龄大于18岁,不包含18岁
SQL:SELECT * FROM Collection WHERE age>18
db.collection.find({age:{$lt:25}}); //年龄小于25岁,不包含25岁
SQL:SELECT * FROM Collection WHERE age<25
db.collection.find({age:{$gte:18}});//年龄大于等于18岁的,包含18岁
SQL:SELECT * FROM Collection WHERE age >=18
db.collection.find({age:{$lte:25}});//年龄小于等于25岁的,包含25岁
SQL:SELECT * FROM Collection WHERE age<=25
也可以将两个条件合并,如下
db.collection.find({age:{$gt:18,$lt:25}}) ;//18<age<25;
不等于
$ne 不等于 noe equals
//年龄不等于18
db.collection.find({age:{$ne:18}}) ;
//等于18
db.collection.find({age:{18}})
in和not in
$in,$nin
语法
db.collection.find({field:{$in:array}});
db.collection.find({field:{$nin:array}});
示例:
db.collection.find({id:{$in:[1,2,3,4]}})
db.collection.find({id:{$nin:[1,2,3,4]}});
文档中是否存在某个属性
$exists 验证一个元素是否存在
//如果记录中有包含title属性的全部返回
db.collection.find({title:{$exists:true}});
//如果记录中有包含title属性的全部不返回,不包含title属性的全部返回
db.collection.find({title:{$exists:false}});
正则表达式----适合解决复杂查询
mongo支持正则表达式,如:
// 后面的i的意思是区分大小写---------- // 之间的就是正则表达式。
db.customers.find( { name : /acme.*corp/i } );
根据嵌入文档的值进行查询
//注意用法是author.name,用一个点就行了。这里author 属性里面是个嵌入文档,该文档还有name的属性
db.postings.find( { "author.name" : "joe" } );
举个例子:
db.blog.save({ title : "My First Post", author: {name : "Jane", id : 1}})
如果我们要查询 authors name 是Jane的, 我们可以这样:
db.blog.findOne({"author.name" : "Jane"})
如果不用点,那就需要用下面这句才能匹配:
db.blog.findOne({"author" : {"name" : "Jane", "id" : 1}})
下面这句:是不能匹配的,因为mongodb对于子对象,他是精确匹配。
db.blog.findOne({"author" : {"name" : "Jane"}})
排序
在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列。
//key为文档中需要排序的属性名称,1表示升序,-1表示降序
db.COLLECTION_NAME.find().sort({KEY:1})
查找文档中某个属性类型为String或者Double的集合----$type 操作符
如果想获取 "col" 集合中 title 为 String 的数据,你可以使用以下命令:
db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})
其中如上的数字与类型对应如下的表:

MongoDB Limit与Skip方法
MongoDB Limit() 方法
如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
>db.COLLECTION_NAME.find().limit(NUMBER)
MongoDB Skip() 方法
如下skip表示: 先选取指定的limit(number)个数的记录,并从该返回结果中跳过skip(number)指定个数的记录
>db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
9349

被折叠的 条评论
为什么被折叠?



