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 ...
随机推荐
- delete,truncate 和 delete之间的区别
1.首先看下语法定义: drop table_name truncate table_name delete table_name [where column_name = value] 2.各个删除 ...
- go语言中结构struct
package main; import "fmt" //结构struct //定义Person结构 type Person struct { name string; age i ...
- EF语句拦截器-匹配当前的Controller,Action,User
示例代码,ps:一切都能实现,关键是你尝试的方向,别把简单问题复杂化导致进入死胡同出不来. using Mobile360.Core.Interfaces; using Mobile360.Core. ...
- Linux_(1)基本命令(上)
一.基本命令1.我是谁 whoami --who am i2.谁在线 who w3.显示当前路径(定位) pwd4.切换目录 cd ~返回主目录 cd ..返回上一级目录5.查看某个目录中的子目录和文 ...
- 性能(js)
1.避免全局查找: <script type="text/javascript"> function updateUI(){ var imgs=document.get ...
- Thrift.1
1. 依据thrift生成相对应语言的代码 [Ref]: http://wiki.apache.org/thrift/ThriftGeneration [Todo] 2. 如何使用生成的代码 [Ref ...
- 零基础照样做RNA-seq差异分析
零基础照样做RNA-seq差异分析 GCBI知识库2018-08-24 14:43:36 基因表达谱的差异分析是RNA-seq中最常见的应用.你眼中的RNA-seq差异分析或许是酱紫的,对不会编程,不 ...
- Yii2-设置和获取、删除Cookies空值分析(有代码)
Yii2-设置和获取,删除Cookies空值或值没有变化 原因: 1.不要使用相同的request url, 否则需要刷新才能获取值 可在不同的动作中设置和调用 2.不要在函数中使用exit来中止脚本 ...
- L与_T
https://www.cnblogs.com/xxn-180727/p/9378519.html _T( ) 是一个适配的宏,当工程采用Unicode字符时 _T()就是 L,会将多字节的字符串转化 ...
- RabbitVCS - Ubuntu VCS Graphical Client
Easy version control for Linux RabbitVCS is a set of graphical tools written to provide simple and s ...