MongoDB的shell使用了Js引擎,因此能运行任意的Js程序。

MongoDB中常用基本数据类型:

null:空值或者不存在的字段
Boolean:true,false
数值型:{"x":NumberInt("3")} {"x":NumberLong("3")}

字符串:{"x":"foobar"}
日期:{"x":new Date()}

正则表达式::{"x":/foobar/i}
数组:{"x":["a","b","c"]}

内嵌文档:{"x":{"foo":"bar"}}

对象id:{"x":ObjectId()}

1、新增

insertOne:新增单个文档

db.collection.insertOne(
<document>,
{
writeConcern: <document>
}
)

示例

var ALin={
"name":"A-Lin",
"birthday":"1983-09-20",
"nationality":"中国",
"BirthPlace":"台湾台东",
"constellation":"处女座",
"Desc":"黄丽玲(A-Lin),1983年9月20日出生于台湾省台东市,台东阿美族原住民,中国台湾流行乐女歌手..."
}
db.stars.insertOne(ALin);

insertMany:批量新增

db.collection.insertMany(
{ [ <document 1> , <document 2>, ... ] },
{
writeConcern: <document>,
ordered: <boolean>
}
)

示例

var stars=
[
{
"name":"孙子涵",
"birthday":"1992-06-11",
"nationality":"中国",
"BirthPlace":"大连",
"constellation":"双子座",
"Desc":"孙子涵,90后学生,90后唱作型男歌手。2011年8月6日发表了第一张个人专辑《一年一度的夏天》;荣获QQ音乐“2011年度新人奖”..."
},
{
"name":"王力宏",
"birthday":"1976-05-17",
"nationality":"美国",
"BirthPlace":"纽约罗切斯特",
"constellation":"金牛座",
"Desc":"王力宏(Leehom Wang),1976年5月17日出生于美国纽约,籍贯浙江义乌..."
}
]
db.stars.insertMany(stars)

insert:新增单个或多个文档

db.collection.insert(
<document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)

示例

var star=
[
{
"name":"王菲",
"birthday":"1969-08-08",
"nationality":"中国",
"BirthPlace":"北京",
"constellation":"狮子座",
"Desc":"王菲(Faye Wong),1969年8月8日出生于北京,中国女歌手、影视演员..."
}
]
db.stars.insert(star)

2、修改

updateOne:根据filter更新单个文档

db.collection.updateOne(
<filter>,
<update>, //只能使用更新操作符更新文档,例如:$set, $unset, $rename等.不能直接使用新文档替换整个旧文档
{
upsert: <boolean>,
writeConcern: <document>
}
)

示例

db.stars.updateOne(
{"name":"王菲"},
{"$set":{"Desc":"1987年底,王菲由北京到香港定居,经朋友介绍拜戴思聪为师学习唱歌。1989年,她以《仍是旧句子》在香港出道..."}}
)

updateMany:根据filter更新多个文档

db.collection.updateMany(
<filter>,
<update>, //只能使用更新操作符更新文档,例如:$set, $unset, $rename等.不能直接使用新文档替换整个旧文档
{
upsert: <boolean>,
writeConcern: <document>
}
)

示例

db.stars.updateMany(
{"name":"王菲"},
{"$set":{"Desc":"1987年底,王菲由北京到香港定居,经朋友介绍拜戴思聪为师学习唱歌。1989年,她以《仍是旧句子》在香港出道..."}}
)

replaceOne:根据filter替换单个文档

db.collection.replaceOne(
<filter>,
<replacement>, //只能是一个新文档,不能使用$set等操作符
{
upsert: <boolean>,
writeConcern: <document>
}
)

示例

db.stars.replaceOne(
{"name":"王菲"},
{
"name":"王菲",
"birthday":"1969-08-08",
"nationality":"中国",
"BirthPlace":"北京",
"constellation":"狮子座",
"Desc":"1989年,她以《仍是旧句子》在香港出道。1991年初,她惜别歌坛,远赴美国修读音乐..."
}
)

update:更新集合中的一个或多个文档,既能更新指定字段也能替换整个文档

db.collection.update(
<query>,
<update>,
{
upsert: <boolean>, //存在修改,不存在新增,默认false
multi: <boolean>, //是否修改多个文档,默认false
writeConcern: <document>
}
)

示例

db.stars.update(
{"name":"王菲"},
{"$set":{"Desc":"王菲(Faye Wong),1969年8月8日出生于北京,中国女歌手、影视演员..."}},
{"multi":true} //默认为false
)

3、删除

Remove:从一个集合中移除一个或多个文档

db.collection.remove(
<query>,
<justOne> //是否删除单个,默认false
)

示例

db.stars.remove({"name":"王菲"},true)

deleteOne:从集合中移除单个文档

db.collection.deleteOne(
<filter>,
{
writeConcern: <document>
}
)

示例

db.stars.deleteOne({"name":"王菲"})

deleteMany:根据filter删除所有匹配的文档

db.collection.deleteMany(
<filter>,
{
writeConcern: <document>
}
)

示例

db.stars.deleteMany({"name":"王菲"})

4、其他常用操作

save方法:文档存在则修改,不存在则新增

db.collection.save(
<document>,
{
writeConcern: <document>
}
)

findOneAndReplace:根据filter和sort替换单个文档

db.collection.findOneAndReplace(
<filter>, //条件
<replacement>, //新文档
{
projection: <document>, //返回字段集合
sort: <document>, //排序
maxTimeMS: <number>, //超时时间
upsert: <boolean>, //存在修改,不存在新增,默认false
returnNewDocument: <boolean> //是否返回新文档,默认false
}
)

findOneAndUpdate方法:根据filter和sort修改单个文档

db.collection.findOneAndUpdate(
<filter>, //条件
<update>, //更新文档,只能使用更新操作符更新文档,例如:$inc、$mul、$rename、$setOnInsert、$set等
{
projection: <document>, //返回字段集合
sort: <document>, //排序
maxTimeMS: <number>, //超时时间
upsert: <boolean>, //存在修改,不存在新增,默认false
returnNewDocument: <boolean> //是否返回新文档,默认false
}
)

findAndModify方法:修改并返回单个文档

db.collection.findAndModify({
query: <document>, //条件
sort: <document>, //排序
remove: <boolean>, //是否移除旧文档,默认为false
update: <document>, //更新文档,只能使用update操作符更新文档,例如:$inc、$mul、$rename、$setOnInsert、$set等
new: <boolean>, //是否返回新文档,默认为false
fields: <document>, //待返回字段集合
upsert: <boolean>, //存在修改,不存在新增,默认false
bypassDocumentValidation: <boolean>,
writeConcern: <document>
});

5、常用update操作符

$inc:自增操作符,只能用于数值型

db.stars.updateOne({"name":"王菲"},{"$inc":{"age":1}})

$mul:乘法,只能用于数值型

db.stars.updateOne({"name":"王菲"},{"$mul":{"age":2}})

$rename:对字段重命名

db.stars.updateOne({"name":"王菲"},{"$rename":{"age":"Age"}})

$setOnInsert:upsert参数为true时触发,为false的时候不执行

db.stars.update({"name":"王菲"},{"$set":{"age":"47"},"$setOnInsert":{"Job":"歌手"}},{"upsert":true})

$set:设置文档中字段的值

db.stars.update({"name":"王菲"},{"$set":{"age":48}})

$unset:移除文档中的一个字段

db.stars.update({"name":"王菲"},{"$unset":{"age":""}})

$min:在给定值与字段值之间取最小值

$max:在给定值与字段值之间取最大值

db.stars.update({"name":"王菲"},{"$max":{"age":40}})

$currentDate:设置某个字段的值为当前时间

db.stars.update({"name":"王菲"},{"$currentDate":{"birthday":{"$type":"date"}}})

type的值为:date、timestamp

MongoDB-增删改的更多相关文章

  1. 数据库——MongoDB增删改查

    MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ...

  2. MongoDB - 增删改查及聚合操作

    目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ...

  3. [MongoDB]增删改查

    摘要 上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作.本篇将继续深入学习一下增删改查. 相关文章 [MongoDB]入门操作 CRUD ...

  4. springMVC操作mongoDB增删改查

    下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...

  5. 第二部分 Mongodb增删改查

    学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ...

  6. MongoDB(六)java操作mongodb增删改查

    java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ...

  7. MongoDB增删改查表文档

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ...

  8. mongodb增删改查操作

    Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表. show d ...

  9. mongodb增删改查常用命令总结

    前言 去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了.现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查. 另外 ...

  10. Python对MongoDB增删改查

    pip install pymongo import pymongo # 建立连接 client = pymongo.MongoClient() # 指定数据库 (不存在则会新建) db = clie ...

随机推荐

  1. SpringCloud如何创建一个服务提供者provider

    SpringCloud如何创建一个服务提供者provider 创建子moudle provider-demo 创建一个子module,项目名叫provider-demo. 填充springboot和s ...

  2. linux命令学习之:ifup/ifdown

    ifup命令网络配置 ifup命令用于激活指定的网络接口.ifdown命令用于禁用指定的网络接口. 实时地手动修改一些网络接口参数,可以利用ifconfig来实现,如果是要直接以配置文件,亦即是在 / ...

  3. XML文件的小结

    1.Layer-list <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:an ...

  4. java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet解决

    spring配置之后启动报错,如下: java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServl ...

  5. bootstrap之双日历时间段选择控件—daterangepicker(汉化版)

    jQuerybootstrapdaterangepicker汉化版 双日历时间段选择插件 — daterangepicker是bootstrap框架后期的一个时间控件,可以设定多个时间段选项,也可以自 ...

  6. Servlet API

    Servlet API的查询网址:通过Tomcat的官网链接找到 可见,Servlet API有4个packages javax.servlet // 包含定义Servlet和Servlet容器之间契 ...

  7. Python之路(第七篇)Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

    一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") ret ...

  8. maven项目springmvc导包失败-JsonProcessingException

    昨天搞了好久还是没有解决,今天把springaop小demo敲一遍时,启动tomcat时报错: org.springframework.beans.factory.BeanCreationExcept ...

  9. Subarray Sum Equals K LT560

    Given an array of integers and an integer k, you need to find the total number of continuous subarra ...

  10. 移动端300ms延迟由来及解决方案

    1.300ms延迟由来 300 毫秒延迟的主要原因是解决双击缩放(double tap to zoom).双击缩放,顾名思义,即用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页 ...