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

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

Insert操作:

单条插入

var single={"name":"mei","age":22}

db.user.insert(single);

循环插入

var single={"name":"tinyphp","num":28,}

for(var i=0;i<5;i++){single.num=i;db.user.insert(single);}

Find查询操作:

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

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

例子:

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

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

例子:

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

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

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

例子:

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

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

例子:

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

表示跳过前20条文档

排序:-1降序,1升序

db.user.findOne()

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

比较查询操作符:

比较操作符

对应

参数

$eq和$ne

=和!=

{:{$eq:}}

$gt和$gte

>和>=

{:{$gt:}}

$lt和$lte

{:{$lt:}}

$in和$nin

包含 和 不包含

{:{$in:[,]}}

例子:

/*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数据类型编号的文档

正则匹配

/* find name 开头为j的*/

db.user.find({"name":/^j/})

$where查询

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

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

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

还可以存起来用:

var list=db.user.find();

list.forEach(function(x){

print(x.name);

})

Update操作:

整体更新

var model=db.user.findOne({"name":"jack"})

model.age=44

db.user.update({"name":"jack"},model)

局部更新

$inc修改器

/*update bing age+30 */

db.user.update({"name":"bing"},{$inc:{"age":30}})

$set修改器

/*update bing age=10 */

db.user.update({"name":"bing"},{$set:{"age":10}})

update的true参数

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

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

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

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

Remove操作:

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

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

java调用js查询mongo_MongoDB增删查改操作示例【基于JavaScript Shell】相关推荐

  1. java调用js查询mongo_mongodb操作之使用javaScript实现多表关联查询

    一.数据控制 mongodb操作数据量控制,千万控制好,不要因为操作的数据量过多而导致失败. 演示一下发生此类错误的错误提示: 二.多表关联查询实现 /* 声明变量bridge,用来记录两个集合所连接 ...

  2. Java JDBC篇2——JDBC增删查改

    Java JDBC篇2--JDBC增删查改 url=jdbc:mysql://localhost:3306/test user=root password=blingbling123. driver= ...

  3. js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

    全栈工程师开发手册 (作者:栾鹏) js系列教程1-数组操作全解 js中数组增删查改 代码如下: //元素增加 var names=[]; //定义数组并初始化为空 names = ["小明 ...

  4. C++通过ODBC方式连接数据库SQLServer及增删查改操作【图书借阅系统为例】

    C++通过ODBC方式连接数据库SQLServer及增删查改操作[图书借阅系统为例] 文章目录 前言 一.ODBC如何配置 二.SQL Server如何设置账号密码 三.C++连接数据库以及增删查改操 ...

  5. 火山视窗文本数组类增删查改操作

    本源码转载自利快云https://www.lkuaiy.com/ 火山视窗文本数组类增删查改操作     文本数组类可对文本型数据进行数组操作,本类可以非常方便的实现对文本数组的增删查改.   一.添 ...

  6. 火山视窗整数数组类增删查改操作

    本源码转载自利快云https://www.lkuaiy.com/ 火山视窗整数数组类增删查改操作     整数数组类可对整数数据进行数组操作,本类可以非常方便的实现对整数数组的增删查改.   一.添加 ...

  7. 【TcaplusDB知识库】GO快速上手PB表的增删查改操作

    PROTOBUF说明 PROTO表是基于PROTOBUF协议设计的TcaplusDB表,PROTOBUF协议是Google开源的通用RPC通信协议,用于TcaplusDB存储数据的序列化.反序列化等操 ...

  8. Hibernate一对多/多对一关系映射详解及相应的增删查改操作

    以客户与订单的关系为例 1.在实体模型类中绑定两者关系: 客户类: public class Customer {private Integer id;//客户idprivate String nam ...

  9. 【MySQL】数据库中表的增删查改操作详解

    文章目录 前言 SQL的通用语法 一.表的创建与表的新增 语法 数据类型的介绍 演示 二.表的删除 语法 删整张表的语法 删记录的语法 演示 三.表的查询 查询整张表 (一)全列查询 (二)指定列查询 ...

最新文章

  1. java去重复的集合_如何去除Java中List集合中的重复数据
  2. vrp车辆路径问题 php,车辆路径问题(VRP)
  3. jquery动态改变图片
  4. HTML标签的分类与特点
  5. 数据 3 分钟 | 阿里云数据库 2020 技术年报发布、TiDB 开启 Hacking Camp、达梦云数据库免费体验...
  6. windows mobile设置插移动卡没反应_u盘插入电脑没反应怎么办 u盘插入电脑没反应解决方法【详解】...
  7. 拓端tecdat|python隶属关系图模型:基于模型的网络中密集重叠社区检测方法
  8. 新句子:没有谁比我更懂XX,抓普也不行
  9. 为了拿Ph.D而做出的诺贝尔奖
  10. Verilog测试:TestBench结构
  11. mysql数据库恢复
  12. 360全景倒车影像怎么看_倒车注意了!路证人360度全景倒车影像实时显示动态轨迹,轻松倒车泊车...
  13. C++ STL map插入效率优化
  14. windows文件服务器双机热备_几款Windows与Linux双机热备软件推荐
  15. 神经元的结构是?包括髓鞘吗?|小白心理-347/312考研答疑
  16. 工作积累10——推荐一本看过最好的数据分析的书
  17. 牛客网 赛码网 js输入输出
  18. array()、range() 和 arange()函数的区别和用法
  19. kettle连接sqlserver报错
  20. [Linux驱动炼成记] 11-快速修改芯片驱动中寄存器的值

热门文章

  1. 2020-08-24
  2. 浪迹天涯的骨灰级开源爱好者——对话阿里云MVP吴晟
  3. 阿里云2020上云采购季,你适合买什么云产品?
  4. 使用Kubernetes容器服务在云上搭建AI推理环境
  5. Apache旗下顶级开源盛会 HBasecon Asia 2018将于8月在京举行
  6. “华为云-东吴杯”圆满成功,顶尖参赛者推动“智造”场景结构升级
  7. 华为与美国公司就授权5G平台展开初期谈判;Linux 中存在严重漏洞;Microsoft 发布 Cosmos DB GA 版……...
  8. 【光说不练假把式】今天说一说Kubernetes 在有赞的实践
  9. 成为最大的独立开源公司,对SUSE意味着什么? | 人物志
  10. centos7 修改默认yum源为国内的阿里云