版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_28483283/article/details/82910741
MongoDB 常用查询语句总结
先来一波查询语句语法的基本解释:
列子:
db.mycol.find({"likes": {$gt:10}, $or: [{"by": "yiibai tutorials"}, {"title": "MongoDB Overview"}]}
,{likes:1,ip:1}
)
find里面,可以填入两个大括号,第一个表示筛选条件,第二个表示你想要返回的字段
先说第二个,稍微简单一些:
{likes:1,ip:0}表示返回likes字段,返回ip字段,那么剩余其他字段呢?不返回!1表示返回,0表示不返回,当然
{likes:1,ip:0}这种情况是不允许的,执行的时候会报错。
再说第一个,语法比较多:
第一点: 所有的筛选条件都放在这里面。用{}包围
第二点:如果你是要查name=“jay”的数据,直接用
db.mongoTest.find({name:'jay'})
第三点: 如果你还有其他and条件就需要使用到and操作符。
db.mycol.find({$and:[{"by":"aaa"},{"title": "bbb"}]})`
这条语句的意思就是查询by=aaa并且title=bbb的数据。
`db.mycol.find({$and:[{"age":{$gt:10}},{"title": "bbb"}]})
这条语句表示你想查询age大于10并且title=bbb的数据。
第四点:如果你需要使用到or条件就需要使用$or操作符,其实使用方法和and类似,这里不在累述。
db.mycol.find({$or: [ {key1: value1}, {key2:value2} ] })
第五点:如果你既有and又有or。如果and里面有两个条件,or里面也有两个条件呢?
db.mycol.find({"likes": {$gt:10},
$or: [{"by": "yiibai tutorials"},{"title": "MongoDB Overview"}]})
db.mycol.find({$and: [{content:"cs"},{likes: {$gt:10}}],
$or: [{"by": "yiibai tutorials"},{"title": "MongoDB Overview"}]})
等效于关系型数据库中的大于小于等操作符列表
操作 | 示例 | 等效语句 |
---|---|---|
相等 | db.mycol.find({“by”:“yiibai”}) | where age = 30 |
小于 | db.mycol.find({“likes”:{$lt:50}}) | where age < 30 |
小于等于 | db.mycol.find({“likes”:{$lte:50}}) | where age <= 30 |
大于 | db.mycol.find({“likes”:{$gt:50}}) | where age > 30 |
大于等于 | db.mycol.find({“likes”:{$gte:50}}) | where age >= 30 |
不想等 | db.mycol.find({“likes”:{$ne:50}}) | where age != 30 |
顺带提一句:在xml文件写sql语句不能直接写<=,需要这样写:
age <= 30
或者使用<![CDATA[ sql内容 ]]>将sql语句包裹住:
where
<![CDATA[
age <= 30
]]>