Mongodb的语法

序言

      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)

Mongodb的数据库备份与恢复

MongoDB语法是用于在MongoDB数据库中执行操作的语法规则。其中一些常见的语法包括: 1. 数据库链接:用于建立与MongoDB数据库的连接。可以使用MongoDB连接字符串或MongoDB连接对象来进行连接。 2. 条件操作符:用于比较和筛选集合中的数据。常见的条件操作符包括大于($gt)、小于($lt)、大于等于($gte)、小于等于($lte)、等于($eq)和非等于($ne)等。 3. 插入数据:使用insert()方法向集合中插入数据。可以使用语法格式如下:db.集合名.insert({字段名: 值})。 总结起来,MongoDB语法包括数据库链接、条件操作符和插入数据等基本操作。使用这些语法可以对MongoDB数据库进行增删改查等操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MongoDB 语法大全](https://blog.youkuaiyun.com/weixin_38316697/article/details/126085968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【数据库】——MongoDB常用语法](https://blog.youkuaiyun.com/weixin_44697562/article/details/110122105)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cuiyaonan2000

给包烟抽吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值