服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|数据库技术|

香港云服务器
服务器之家 - 数据库 - MongoDB - MongoDB增删查改操作示例【基于JavaScript Shell】

MongoDB增删查改操作示例【基于JavaScript Shell】

2020-05-23 19:31tinyphp MongoDB

这篇文章主要介绍了MongoDB增删查改操作,结合实例形式分析了MongoDB数据库基于JavaScript Shell的基本增删查改操作技巧与使用注意事项,需要的朋友可以参考下

本文实例讲述了MongoDB增删查改操作。分享给大家供大家参考,具体如下:

MongoDB自带了一个JavaScript Shell,所以在其中使用js语法是可以的。

Insert操作:

单条插入

?
1
2
var single={"name":"mei","age":22}
db.user.insert(single);

循环插入

?
1
2
var single={"name":"tinyphp","num":28,}
for(var i=0;i<5;i++){single.num=i;db.user.insert(single);}

Find查询操作:

?
1
db.集合名.find(query,fields,limit,skip)

query,指明查询条件,相当于SQL中的where语句
例子:

?
1
db.student.find({"name":"joe","age":{$lt:22}})

fields用于字段映射,语法格式:{field:0}或{field:1}

例子:

?
1
db.student.find({"age":{$lt:22},{"_id":0,"name":1}})

表示查询结果包含name字段,不包含_id字段

limit限制查询结果集的文档数量,指定查询返回结果数量的上限

例子:

?
1
db.student.find({"name":"joe"},{"name":1,"age":1},5)

skip跳过一定数量的结果,设置第一条返回文档的偏移量

例子:

?
1
db.student.find({"name":"joe"},{"name":1,"age":1},5,20)

表示跳过前20条文档

排序:-1降序,1升序

?
1
db.user.findOne()

注意事项:MongoDB不支持多集合间的连接查询,find函数一次查询只针对一个集合

比较查询操作符:

 

比较操作符 对应 参数
$eq和$ne =和!= {:{$eq:}}
$gt和$gte >和>= {:{$gt:}}
$lt和$lte <和<= {:{$lt:}}
$in和$nin 包含 和 不包含 {:{$in:[,]}}

 

例子:

?
1
2
/*find age >22*/
db.user.find({"age":{$gt:22}})

逻辑查询操作符:

 

逻辑操作符 对应 参数  
$and {$and:[{条件1},..,{条件N}]} db.user.find({$and:[{"name":"tinyphp","num":3}]}) 等同 db.user.find({"name":"tinyphp","num":3})
$or {$or:[{条件1},..,{条件N}]}  
$nor {$nor:[{条件1},..,{条件N}]}  
$not 取反 {field:{$not:{条件}}}  

 

元素操作符:

 

元素操作符 作用  
$exists 按照字段是否存在来查询文档 {field:{$exists:布尔值}} db.user.find({"age":{$exists:true}}) 查询存在age字段的文档
$type 选择字段值为指定BSON数据类型编号的文档    

 

正则匹配

?
1
2
/* find name 开头为j的*/
db.user.find({"name":/^j/})

$where查询

可以结合javascript进行查询,当javascript返回true时,才返回当前文档

?
1
db.user.find({$where:function(){return this.name=='jack'}})

查询时,$where操作符不能使用索引,每个文档需要从BSON对象转换成javascript对象后,才可以通过$where表达式运行,因此比常规查询要慢,一般要避免使用$where查询。

还可以存起来用:

?
1
2
3
4
var list=db.user.find();
 list.forEach(function(x){
print(x.name);
})

Update操作:

整体更新

?
1
2
3
var model=db.user.findOne({"name":"jack"})
model.age=44
db.user.update({"name":"jack"},model)

局部更新

$inc修改器

?
1
2
/*update bing age+30 */
db.user.update({"name":"bing"},{$inc:{"age":30}})

$set修改器

?
1
2
/*update bing age=10 */
db.user.update({"name":"bing"},{$set:{"age":10}})

update的true参数

若update最后参数加true则修改条件不存在时,自动增加一条如:

?
1
db.user.update({"name":"Mark"},{$set:{"age":10}},true)

会自动增加一条记录:name为mark,age为10

如果加了true,而且条件又满足则会批量修改,不然就默认只更新第一条

Remove操作:

?
1
db.person.remove({"name":"jack"})

希望本文所述对大家MongoDB数据库程序设计有所帮助。

原文链接:https://www.cnblogs.com/tinyphp/p/5654621.html

延伸 · 阅读

精彩推荐
  • MongoDBmongodb基本命令实例小结

    mongodb基本命令实例小结

    这篇文章主要介绍了mongodb基本命令,结合实例形式总结分析了MongoDB数据库切换、查看、删除、查询等基本命令用法与操作注意事项,需要的朋友可以参考下...

    dawn-liu3652020-05-26
  • MongoDBMongoDB 内存使用情况分析

    MongoDB 内存使用情况分析

    都说 MongoDB 是个内存大户,但是怎么知道它到底用了多少内存呢...

    MongoDB教程网10002020-09-29
  • MongoDBMongoDB凭什么跻身数据库排行前五

    MongoDB凭什么跻身数据库排行前五

    MongoDB以比去年同期超出65.96分的成绩继续雄踞榜单前五,这个增幅在全榜仅次于PostgreSQL的77.99,而其相对于4月份的6.10分的增长也是仅次于微软SQL Server排名...

    孙浩峰3892020-05-22
  • MongoDBMongodb实现定时备份与恢复的方法教程

    Mongodb实现定时备份与恢复的方法教程

    这篇文章主要给大家介绍了Mongodb实现定时备份与恢复的方法教程,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面...

    chenjsh364522020-05-13
  • MongoDB分布式文档存储数据库之MongoDB分片集群的问题

    分布式文档存储数据库之MongoDB分片集群的问题

    这篇文章主要介绍了分布式文档存储数据库之MongoDB分片集群的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...

    Linux-18743072020-12-20
  • MongoDB迁移sqlserver数据到MongoDb的方法

    迁移sqlserver数据到MongoDb的方法

    这篇文章主要介绍了迁移sqlserver数据到MongoDb的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...

    听枫xl9682021-01-03
  • MongoDBMongoDB安装图文教程

    MongoDB安装图文教程

    这篇文章主要为大家详细介绍了MongoDB安装图文教程,分为两大部分为大家介绍下载MongoDB和安装MongoDB的方法,感兴趣的小伙伴们可以参考一下 ...

    Yangyi.He6132020-05-07
  • MongoDBMongoDB中javascript脚本编程简介和入门实例

    MongoDB中javascript脚本编程简介和入门实例

    作为一个数据库,MongoDB有一个很大的优势——它使用js管理数据库,所以也能够使用js脚本进行复杂的管理——这种方法非常灵活 ...

    MongoDB教程网6982020-04-24
431