db.collection.find({field:/正则表达式/})或db.凑集.find({字段:/正则表达式/})
提示:正则表达式是js的语法,直接量的写法。
例如,我要查询评论内容包含“开水”的所有文档,代码如下:
db.comment.find({content:/开水/})
如果要查询评论的内容中以“专家”开头的,代码如下:
db.comment.find({content:/^专家/})
比较查询
<, <=, >, >= 这个操作符也是很常用的,格式如下:
db.凑集名称.find({ "field" : { $gt: value }}) // 大于: field > valuedb.凑集名称.find({ "field" : { $lt: value }}) // 小于: field < valuedb.凑集名称.find({ "field" : { $gte: value }}) // 大于即是: field >= valuedb.凑集名称.find({ "field" : { $lte: value }}) // 小于即是: field <= valuedb.凑集名称.find({ "field" : { $ne: value }}) // 不即是: field != value
示例:查询评论点赞数量大于700的记录
db.comment.find({likenum:{$gt:NumberInt(700)}})
包含查询
包含利用$in操作符。 示例:查询评论的凑集中userid字段包含1003或1004的文档
db.comment.find({userid:{$in:["1003","1004"]}
不包含利用$nin操作符。 示例:查询评论凑集中userid字段不包含1003和1004的文档
db.comment.find({userid:{$nin:["1003","1004"]}})
条件连接查询
我们如果须要查询同时知足两个以上条件,须要利用$and操作符将条件进行关联。(相 当于SQL的and) 格式为:
$and:[ { },{ },{ } ]
示例:查询评论凑集中likenum大于即是700 并且小于2000的文档:
db.comment.find({$and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lt:NumberInt(2000)}}]})
如果两个以上条件之间是或者的关系,我们利用 操作符进行关联,与前面 and的利用办法相同 格式为:
$or:[ { },{ },{ } ]
示例:查询评论凑集中userid为1003,或者点赞数小于1000的文档记录
db.comment.find({$or:[ {userid:"1003"} ,{likenum:{$lt:1000} }]})