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 ...
随机推荐
- swift - 接入听云监测 - 问题
1. 正常下载 探针SDK:https://report.tingyun.com/mobile-web/#/onlyHeader/sdkDownload 2.按步骤接入 ,添加库啊,什么的URLSc ...
- day 10 函数名的运用,闭包,迭代器
函数名的本质 函数名本质上就是函数的内存地址 函数名的五种运用: 1.函数名是一个变量 def func(): print(666) print(func) # 函数的内存地址 <functio ...
- jQuery和js使用点滴
1.checkbox全选按钮 <input type="checkbox" name="allcheck" id="allcheck" ...
- Head First Servlets & JSP 学习笔记 第二章 —— Web应用体系结构
Servlet没有main()方法,所以Servlet受其他人控制,这个其他人就是容器!而Tomcat就是一种容器. 容器向Servlet提供Http请求和Http响应:容器来调用Servlet的do ...
- 安装opencv2.4.9
首先如果你的运气足够好,你完全可以按照 : https://my.oschina.net/u/1757926/blog/293976 或者OpenCV中文论坛上的Linux下opencv的安装方法 但 ...
- JFinal Web开发学习(二)目录、架构、package设计
package分类 config是JFinal的项目配置 controller是控制器 handler可以设置全局处理器,例如判断用户请求中是否直接请求 FreeMarker的模板文件ftl或者htm ...
- c# txt内存映射技术总结
对于大文件操作,readline 的方式读取文档,那操作起来跟蜗牛爬一样的慢了, 于是使用内存映射技术, 参考微软的这个使用方法说明 https://msdn.microsoft.com/zh-cn/ ...
- javascript DOM基础操作
DOM(Document Object Model)即文档对象模型,针对HTML和XML文档的API(应用程序接口).DOM描绘了一个层次化的节点树,运行开发人员添加.移除和修改页面的某一部分.DOM ...
- 使用GrabCut提取前景图像的示范代码
#include<opencv2/opencv.hpp> bool selectObject = false; cv::Point origin; cv::Rect selection; ...
- myeclipse的安装与配置和JUnit的简单使用
安装配置 首先根据自己电脑系统选择合适的JDK版本 http://www.oracle.com/technetwork/java/javase/downloads/index.html 这是JDK下载 ...