MongoDB第二天

集合的操作:

db.表名称

show tables / collection

db.表名.drop()

文档的操作:

插入数据

db.表名.insert({"name":"jerry"})

db.insertMany([{"name":"sb",...}])

var ul = {"name":"sb"}

db.sb.insert(ul)

db.sb.save()如果没有则创建,有则覆盖

查询数据

db.sb.find({""筛选条件""},{""控制要显示的字段":1"})

比较运算符

gt大于 lt小于  gte大于等于  lte小于等于  ne不等于

逻辑运算符:

and or not 

db.sb.find({"name":"sb","_id":23})      等同于and

db.sb.find({"$or":[{"name":"sb"},{"name":"lj"}]})

查询id为偶数的

db.user.find({"_id":{"$mod":[2,0]}})

取反

db.user.find({"_id":{"$not":{"$mod":[2,1]}}})

成员运算符:

id 在列表1,2,3,4中的

db.user.find({"_id":{"$in":[1,23,4]}})

不在列表中的

db.user.find({"_id":{"$nin":[1,23,4]}})

正则:

db.user.find({"name":/^sb.*?b$/i})

更新修改数据

update()方法用于更新已存在的文档,语法格式如下:

db.sb.update(<query>,<update>,{upsert:<boolean>,multi:<boolean>,writeConcern:<document>})

参数说明:

query:相当于where条件

update:update的对象和一些更新的操作符($inc)

upsert:可选,默认为false,代表如果不存在update的记录则不更新也不插入,设置为true代表插入

multi:可选,默认为false,代表只更新找到的第一条记录,设为true,代表更新找到的所有记录

writeConcern:可选,抛出异常的级别

更新操作是不可分割的:若两个更新同时发送,先到达服务器的先执行,然后执行另外一个,不会破坏文档

除非是删除,否则_id是始终不会改变的

1.覆盖式

db.user.update({"age":20},{"name":"sb","hobbies":[1,2,3]})

是使用新的数据覆盖原来的数据

2.一种最简单的更新就是用一个新的文档完全替换匹配的文档

这适用于大规模式迁移的情况,

var obj = db.user.findOne({"_id":2})

obj.username=obj.name+"sb"

delete obj.age

db.user.update({"_id":2,obj})

设置set

通常文档只会有一部分需要更新,可以使用原子性的更新修改器,指定对文档中的某些字段进行更新.

更新修改器是种特殊的键,用来指定复杂的更新操作,比如修改,增加或者删除

1.db.user.update({"_id":2},{"$set":{"name":"wxx"}})

2.没有匹配成功则新增一条

db.user.update({"_id":6},{"$set":{"name":"egon","age":80}},{"upsert":true})

3.默认只改匹配成功的第一条,{"multi":该多条}

db.user.update({"_id":{"$gt":3}},{"$set":{"gae":28}},{"multi":true})

4.修改内嵌文档,把名字为alex的人所在的地址国家改为japan

db.user.update({'name':'alex'},{"$set":{"addr.country":"japan"}})

5.把名字为alex的人的第二个爱好改成嫖

db.user.update({"name":"alex"},{'$set':{'hobbies.1':"piao"}})

6.删除alex的爱好,$unset

db.user.update({'name':'alex'},{'$unset':{"hobbies":""}})

增加和减少 $inc

1.所有人的年龄增加一岁

db.user.update({},{"$inc":{"age":1}},{"multi":true})

2.所有人年龄减少5岁

db.user.update({},{"$inc":{"age":-5}},{"multi":true})

添加删除数组元素

往数组内添加元素:$push

1.为名字为yuanhao的人添加一个爱好read

db.user.update({"name":"yuanhao"},{"$push":{"hobbies":"read"}})

2.为名字为yuanhao的人一次添加多个爱好tea,dancing

db.user.update({"name":"yuanhao"},{"$push":{"hobbies":{"$each":["tea","dancing"]}}})

3按照位置只能从开头或结尾删除元素:$pop

3.{"$pop":{"key":1}}从数组末尾删除一个元素

db.user.update({"name":"yuanahao"},{"$pop":{"hobbies":1}})

4.{"$pop":{"key":-1}}从头部删除

db.user.update({"name":"yuanhao"},{"$pop":{"hobbies":-1}})

5.按照条件删除元素:$pull 把符合条件的统统删掉,而$pop只能从两端删除

db.user.update({"addr.country":"China"},{"$pull":{"hobbies":"read"}},{"multi":true})

避免添加重复:$addToSet

自动去除重复

db.user.insert({"_id":1},"urls":[])

db.user.update({"_id":1},{"$addToSet":{"urls":'http://129.0.0.1.com'}})

其他

1.限制大小$slice 直流最后几个

db.user.update({"_id":5},{"$push":{"hobbies":{"$each":['rad','write','dacing'],

'$slice":-2'}}})

#2、了解:排序

The $sort element value must be either 1 or -1"

db.user.update({"_id":5},{

"$push":{"hobbies":{

"$each":["read",'music','dancing'],
"$slice":-1,
"$sort":-1
}
})

删除数据

1.删除多个中的一个

db.user.deleteOne({"age":18})

2.删除国家为China的全部

db.user.deleteMany({})

 

转载于:https://www.cnblogs.com/suncunxu/p/10718494.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 主成分分析PCA

Python 主成分分析PCA 主成分分析&#xff08;PCA&#xff09;是一种基于变量协方差矩阵对数据进行压缩降维、去噪的有效方法&#xff0c;PCA的思想是将n维特征映射到k维上&#xff08;k<n&#xff09;&#xff0c;这k维特征称为主元&#xff0c;是旧特征的线性组合&#xf…

小程序 国际化_在国际化您的应用程序时忘记的一件事

小程序 国际化The hidden bugs waiting to be found by your international users您的国际用户正在等待发现的隐藏错误 While internationalizing our applications, we focus on the things we can see: text, tool-tips, error messages, and the like. But, hidden in our …

三. 性能测试领域

能力验证&#xff1a; 概念&#xff1a;系统能否在A条件下具备B能力 应用&#xff1a;为客户进行系统上线后的验收测试&#xff0c;作为第三方对一个已经部署系统的性能验证 特点&#xff1a;需要在已确定的环境下运行 需要根据典型场景设计测试方案和用例 一个典型场景包括操…

PCA主成分分析Python实现

作者&#xff1a;拾毅者 出处&#xff1a;http://blog.csdn.net/Dream_angel_Z/article/details/50760130 Github源码&#xff1a;https://github.com/csuldw/MachineLearning/tree/master/PCA PCA&#xff08;principle component analysis&#xff09; &#xff0c;主成分分…

scp

将文件或目录从本地通过网络拷贝到目标端。拷贝目录要带 -r 参数 格式&#xff1a;scp 本地用户名IP地址:文件名1 远程用户名IP地址:文件名 2 例&#xff1a; scp media.repo root192.168.20.32:/etc/yum.repos.d/ 将远程主机文件或目录拷贝到本机&#xff0c;源和目的参数调换…

robo 3t连接_使用robo 3t studio 3t连接到地图集

robo 3t连接Robo 3T (formerly Robomongo) is a graphical application to connect to MongoDB. The newest version now includes support for TLS/SSL and SNI which is required to connect to Atlas M0 free tier clusters.Robo 3T(以前称为Robomongo )是用于连接MongoDB的…

JavaWeb--JavaEE

一、JavaEE平台安装1、升级eclipseEE插件2、MyEclipse二、配置Eclipse工作空间1.字体设置 2.工作空间编码 UTF-83.JDK版本指定 4.集成Tomcat Server运行环境5.配置server webapps目录 端口号 启动时间等三、创建第一个Web项目1.创建 Web Project2.设置 tomcat、创建web.xml3.目…

软件需求规格说明书通用模版_通用需求挑战和机遇

软件需求规格说明书通用模版When developing applications there will be requirements that are needed on more than one application. Examples of such common requirements are non-functional, cookie consent and design patterns. How can we work with these types of…

python版PCA(主成分分析)

python版PCA&#xff08;主成分分析&#xff09; 在用统计分析方法研究这个多变量的课题时&#xff0c;变量个数太多就会增加课题的复杂性。人们自然希望变量个数较少而得到的信息较多。在很多情形&#xff0c;变量之间是有一定的相关关系的&#xff0c;当两个变量之间有一定…

干货|Spring Cloud Bus 消息总线介绍

2019独角兽企业重金招聘Python工程师标准>>> 继上一篇 干货&#xff5c;Spring Cloud Stream 体系及原理介绍 之后&#xff0c;本期我们来了解下 Spring Cloud 体系中的另外一个组件 Spring Cloud Bus (建议先熟悉 Spring Cloud Stream&#xff0c;不然无法理解 Spr…

一类动词二类动词三类动词_基于http动词的完全无效授权技术

一类动词二类动词三类动词Authorization is a basic feature of modern web applications. It’s a mechanism of specifying access rights or privileges to resources according to user roles. In case of CMS like applications, it needs to be equipped with advanced l…

主成份分析(PCA)详解

主成分分析法&#xff08;Principal Component Analysis&#xff09;大多在数据维度比较高的时候&#xff0c;用来减少数据维度&#xff0c;因而加快模型训练速度。另外也有些用途&#xff0c;比如图片压缩&#xff08;主要是用SVD&#xff0c;也可以用PCA来做&#xff09;、因…

thinkphp5记录

ThinkPHP5 隐藏index.php问题 thinkphp模板输出cookie,session中… 转载于:https://www.cnblogs.com/niuben/p/10056049.html

portainer容器可视化管理部署简要笔记

参考链接&#xff1a;https://www.portainer.io/installation/ 1、单个宿主机部署in Linux&#xff1a;$ docker volume create portainer_data$ docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 2、单…

证明您履历表经验的防弹五步法

How many times have you gotten the question “Tell me more about your work experience at …” or “Describe an experience when you had to overcome a technical challenge”? Is your answer solid and bullet-proof every single time you have to respond? If no…

2018-2019-1 20165231 实验四 外设驱动程序设计

博客链接&#xff1a;https://www.cnblogs.com/heyanda/p/10054680.html 转载于:https://www.cnblogs.com/Yhooyon/p/10056173.html

如何安装pylab:python如何导入matplotlib模块

pylab是python下挺不错的一个画图模块&#xff0c;使用也非常简单&#xff0c;记得Mit的计算机科学及编程导论有节课也是用到了这个工具&#xff0c;但这个工具安装不象用起来那么方便&#xff0c;小编就图文全程直播下吧 工具/原料 python2.7.10win10 32位方法/步骤 1缺省状态…

微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面

实现微信扫描二维码和浏览器扫描二维码 ios和Android 分别进入不用的提示页面 而进入商城下载该项目 详情地址&#xff1a;gitee.com/DuJiaHui123… 1.创建完之后 替换文件里面的ios项目地址和Android地址 2.网页上线 3.百度搜索 二维码生成 把上线后的地址生成二维码 4.可以把…

详解getchar()函数与缓冲区

1、首先&#xff0c;我们看一下这段代码&#xff1a; 它的简单意思就是从键盘读入一个字符&#xff0c;然后输出到屏幕。理所当然&#xff0c;我们输入1&#xff0c;输出就是1&#xff0c;输入2&#xff0c;输出就是2。 那么我们如果输出的是12呢&#xff1f; 它的输出是1。 这…

windows下python安装Numpy、Scipy、matplotlib模块

python 2.7 针对2.7的软件。numpy :http://sourceforge.net/projects/numpy/files/NumPy/1.8.1/ 下载下面的numpy-1.8.2-win32-superpack-python2.7 scipy: http://sourceforge.net/projects/scipy/files/matplotlib:matplotlib-1.1.0.win32-py2.7 以上都是exe文件&#xff0…