昨天分享了一篇《MongoDB基础之原生方法增删改查》的文章,今天这篇文章主要是扩展查询条件部分,专业名词叫查询表达式。
2 查询表达式
2.1 测试数据录入
db.query.insert([
{id:1, name:'张无忌', age:26, gender:'M'},
{id:2, name:'赵敏', age:NumberInt(23), gender:'F'},
{id:3, name:'张三丰', age:60, gender:'M', profession:'武术教练'},
{id:4, name:'谢逊', age:45, gender:'M', alias:'金毛狮王'},
{id:5, name:'张翠山', age:47, gender:'M', other_info:{son:'张无忌', wife:'殷素素'}},
{id:6, name:'殷素素', age:'43', gender:'F'},
])
2.2 条件操作符
2.2.1 等于
db.query.find({id:2})
db.query.find({id:{$eq:2}})
2.2.2 小于
db.query.find({id:{$lt:3}})
2.2.3 小于或等于
db.query.find({id:{$lte:3}})
2.2.4 大于
db.query.find({id:{$gt:3}})
2.2.5 大于或等于
db.query.find({id:{$gte:3}})
2.2.6 不等于
db.query.find({id:{$ne:3}})
2.2.7 $in
db.query.find({id:{$in:[3,4]}})
2.2.8 $nin
db.query.find({id:{$nin:[3,4]}})
2.3 多条件并列
2.3.1 and条件
db.query.find({age:{$gt:40}, gender:'M'})
2.3.2 or条件(注意数组)
db.query.find({$or:[{age:{$gt:40}}, {gender:'M'}]})
2.4 特殊操作符
2.4.1 $type
db.query.find({age:{$type:'string'}})
db.query.find({age:{$type:2}})
db.query.find({age:{$type:'double'}})
2.4.2 $exists
db.query.find({alias:{$exists:true}})
2.4.3 正则匹配,类似mysql中的like
db.query.find({name:{$regex:'张'}})
db.query.find({name:/^张.*丰$/})
2.5 条件补充
2.5.1 排序 sort()
db.query.find().sort({age:-1})
2.5.2 跳过和取条数 skip() limit()
db.query.find().sort({age:-1}).skip(2).limit(3)
本文为 陈华 原创,欢迎转载,但请注明出处:http://edu.ichenhua.cn/read/39
- 上一篇:
- MongoDB基础之原生方法增删改查
- 下一篇:
- MongoDB基础之聚合查询示例