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 ...
随机推荐
- layui禁用侧边导航栏点击事件
layui是一款优秀的前端模块化css框架,作者是贤心 —— 国内的一位前端大佬. 我用layui做过两个完整的项目,对她的感觉就是,这货非常适合做后台管理界面,且基于jquery,很容易上手.当然, ...
- Nginx特点及其配置
1.基础知识 代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客户端首先与代 ...
- Ubuntu 16.04安装JDK并配置环境变量-【小白版】
系统版本:Ubuntu 16.04 JDK版本:jdk1.8.0_121 1.官网下载JDK文件jdk-8u121-linux-x64.tar.gz 我这里下的是最新版,其他版本也可以 2.创建一个目 ...
- 【MINA学习笔记】—— 1.体系结构分析[z]
前言 Apache的MINA框架是一个早年非常流行的NIO框架,它出自于Netty之父Trustin Lee大神之手.虽然目前市场份额已经逐渐被Netty取代了,但是其作为NIO初学者入门学习框架是非 ...
- LOADRUNNER重装经验
1 装了LR的机器最好不要装UFT,两个工具共用一个配置文件,容易冲突. 2 LR11录制脚本时,支持的浏览器有:IE8及以下版本.FIREFOX,用哪个浏览器录制就要在操作系统中将其设置为默认浏览器 ...
- 实用SQL大全
一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...
- Window7安装tensorflow整套环境详细流程
安装tensorflow方式有好多种,为了方便编译环境以及包管理,这里采用Anaconda平台安装tensorflow. tensorflow官网:http://www.tensorflow.org/ ...
- Eclipse新建tld文件
tld(tag lib description文件)就是以.tld结尾的XML文件 选好目录右键 --> New --> Other -->找到XML FIle --> Nex ...
- [Robot Framework] Robot Framework用Execute Javascript对XPath表示的元素执行scrollIntoView操作
有些元素需要通过滚动条滚动才能变得可见. 如果这些元素在DOM结构里面存在,可以通过scrollIntoView让其可见,但如果在DOM结构里面不存在那就要通过拖动滚动条让其变的可见. Execute ...
- Spring 循环引用(二)源码分析
Spring 循环引用(二)源码分析 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring 循环引用相关文章: & ...