MongoDB-增删改
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-增删改的更多相关文章
- 数据库——MongoDB增删改查
		MongoDB增删改查操作 本文包含对数据库.集合以及文档的基本增删改查操作 数据库操作 #1.增 use config #如果数据库不存在,则创建并切换到该数据库,存在则直接切换到指定数据库. #2 ... 
- MongoDB - 增删改查及聚合操作
		目录 MongoDB - 增删改查及聚合操作 一. 数据库操作(database) 1. 创建及查看库 2. 删除库 二. 集合collectionc=操作(相当于SQL数据库中的表table) 1. ... 
- [MongoDB]增删改查
		摘要 上篇文章学习了mongodb在windows上的安装,以及如何开启mongodb,最后列举了简单的增删改查操作.本篇将继续深入学习一下增删改查. 相关文章 [MongoDB]入门操作 CRUD ... 
- springMVC操作mongoDB增删改查
		下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ... 
- 第二部分 Mongodb增删改查
		学习内容:1.mongodb增加操作2.mongodb删除操作3.mongodb查询操作增删改查的高级应用Capped Collection(固定集合)GridFS 大文件上传或下载 1: inser ... 
- MongoDB(六)java操作mongodb增删改查
		java操作mysql数据库的代码我们已经了如指掌了.增删改查,java对mongodb数据库也是类似的操作,先是数据库连接.再是进行操作. 首先我们进入进入admin数据库.然后建立自己的数据库te ... 
- MongoDB增删改查表文档
		MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,是一个基于分布式文件存储的开源数据库系统.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关 ... 
- mongodb增删改查操作
		Note:mongodb存储的是文档,且文档是json格式的对象,所以增删改查都必须是json格式对象. 注:mongodb常用库和表操作,但mongodb在插入数据时,不需要先创建表. show d ... 
- mongodb增删改查常用命令总结
		前言 去年我还折腾过mongodb,后来用不到也就没碰了,这就导致了我忘的一干二净,不得不感叹,编程这东西只要不用,就会忘没了.现在我想重拾mongodb,来总结一下常用命令,主要就是增删改查. 另外 ... 
- Python对MongoDB增删改查
		pip install pymongo import pymongo # 建立连接 client = pymongo.MongoClient() # 指定数据库 (不存在则会新建) db = clie ... 
随机推荐
- cloud  server ribbon 自定义策略配置
			虽然ribbon默认为我们提供了多钟负载均衡策略,但有时候我们仍然需要自定义符合自身业务逻辑的规则 使用配置文件的方式:我们只需要在配置文件中添加配置 serviceId.ribbon.NFLoadB ... 
- Laravel常用命令行中文版
			1.生成控制器 php artisan make:controller ArticleController 对应的会在app/http/controllers下面生成ArticleController ... 
- sqlserver数据库的物理存储格式和逻辑存储格式
			物理存储结构: 数据库文件在磁盘上的存储形式: 主数据文件:*.mdf.用来存储数据库的启动信息.存储部分或全部的数据.整个的数据库只能有一个主数据文件 辅助数据文件:*.ndf.用于存储主数据文件未 ... 
- c# 策略模式  加工厂模式-对象与行为分离
			计算器程序 策略模式是一种行为学模式.行为是同等级的算法 ,这些行为每个模式封装到一个类里 上端提供数据 ,下端提供算法 ,中间层context context 把上端的数据和算法 放到co ... 
- Oracle_高级功能(5) 用户、角色、权限
			一.用户(模式)1.定义用户:对数据库的访问,需要以适当用户身份通过验证,并具有相关权限来完成一系列动作模式(schema):是某个用户所拥有的对象的集合.具有创建对象权限并创建了对象的用户称为拥有某 ... 
- CSS学习总结1:CSS样式
			1.CSS背景 属性 background-color:为元素设置背景色,值可以是任何合法的颜色值.实例:p {background-color: gray;} background-image:为元 ... 
- UVA 11235 (RMQ) 频繁出现的数值
			题目大意是给出一个非降序排列的数组,然后n个询问,每次询问一个区间内出现次数最多的数的次数. 首先要弄清楚题目的是一个非降序的数组,那么说明相等的数都会在一起,类似于11223334569这样的,那么 ... 
- Thrift.1
			1. 依据thrift生成相对应语言的代码 [Ref]: http://wiki.apache.org/thrift/ThriftGeneration [Todo] 2. 如何使用生成的代码 [Ref ... 
- widget jquery 理解
			jquery ui 的所有组件都是基于一个简单,可重用的widget. 这个widget是jquery ui的核心部分,实用它能实现一致的API,创建有状态的插件,而无需关心插件的内部转换. $.wi ... 
- Java Http接收中文乱码解决
			当时url传递时,可用 byte[] bytes=reqdata_s.getBytes("ISO-8859-1"); String name=new String(bytes,&q ... 
