MongoDB的一些CURD操作
MongoDB的一些增删改查命令操作:
官方文档参考
https://docs.mongodb.com/manual/reference/method/
https://docs.mongodb.com/manual/reference/operator/
#查看当前mongod下有哪些数据库:
show dbs #进入或者创建一个数据库: use 数据库名称
use db_name #查看当前数据库下,有哪些集合(表):
show tables
或者
show collections #创建一个集合,(直接插入一个文档)
db.集合名称.insert({a:1}) #更新文档
db.集合名称.update(query, update, option) #删除文档
db.集合名称.remove(query, justone) #查询文档
db.集合名称.find(query, projection) #创建索引
db.集合名称.createIndex(keys, options) #删除当前数据库
db.dropDatabase() #删除表
db.集合名称.drop() #排序
sort #查询时跳过和limit
skip limit #常用聚合
count、group、aggregate、mapReduce 等等
----------------------------------------------------------
几个例子:
增加一条文档:几种数据类型的展示
db.user.insert({
"userid":1,
"username":'user1',
"isDel":false,
"high":1.80,
"age":18,
"fonds":['coding', 'sleeping'],
"parents":{
"father":"xx",
"mother":"yy",
},
"date": new Date(),
"time": new Timestamp(),
});
----------------------------------------------------------
更新: db.collection.update(query, update, option)
第一个参数,query表示条件;
第二个参数,update更新,注意$set:{}的用法,更新bson内的数组和对象用法;
第三个参数,option,upsert表示如果query条件没有就插入一条,multi是否更新多个满足条件的记录。
db.user.update({"userid":1}, {$set:{
"isDel": true,
"parents.mother":"zz",
"fonds.1":'playing',
}}, {upsert: false, multi: false});
由于mongoDB是灵活的模式,同一个集合下的各个字段可能在一个文档里存在,另一条不存在。
比如要把userid=1的这条文档的isDel域删掉,更新语句这样写:
第二个参数update,利用了$unset:{}。更多去参考 https://docs.mongodb.com/manual/reference/operator/update/
db.user.update({"userid":1}, {$unset:{
"isDel": "",
}}, {multi: false});
----------------------------------------------------------
删除操作: db.collection.remove(query, justone)
db.collection.remove({"userid":{$gte:5}}, false)
该语句表示删除userid大于等于5的文档
query是条件,注意$gte这些操作符的写法
justone表示是否允许删除多条文档
-------------------------------------------------------------
查询操作: db.collection.find(query, projection)
用法更多参考: https://docs.mongodb.com/manual/reference/operator/query/
db.collection.find({ "userid":{ $gt : 1, $lte :5 } }, {"_id":0, "userid":1, "username":1})
该语句表示查找userid大于1小于等于5的文档,并取出userid和username域,不要_id域(默认会取出该_id字段)
第一个参数query,表示查询条件;
第二个参数projection,表示取出的映射字段,1为取出来,0不展示。
----------------------------------------------------------
创建索引: db.collection.createIndex(keys, options)
查看一个集合下的索引:db.collection.getIndexes()
默认创建一个集合时,会生成 _id 的默认索引
db.collection.createIndex({userid:1, cdate:-1}})
创建一个复合索引,userid正序,cdate倒序的索引。
----------------------------------------------------------
其他常用操作, sort、limit、skip、count、group、aggregate、mapReduce。
在官方操作手册上查看.
再附上一个网友总结的常用CURD操作上,mongoDB和sql的对比:
http://www.cnblogs.com/yangxia-test/p/3979981.html
MongoDB的一些CURD操作的更多相关文章
- MongoDB安装、CURD操作、使用场景分析总结(1)
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- MongoDB的安装及CURD操作
MongoDB的下载地址:http://www.mongodb.org/downloads MongoDB有32bit和64bit两个版本,32bit只能存放2GB数据.我们选择64bit版进行下载. ...
- windows下mongodb基础玩法系列二CURD操作(创建、更新、读取和删除)
windows下mongodb基础玩法系列 windows下mongodb基础玩法系列一介绍与安装 windows下mongodb基础玩法系列二CURD操作(创建.更新.读取和删除) windows下 ...
- MongoDB安装、CURD增改查删操作、应用场景
NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL".非关系型的数据存储 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 ...
- MongoDB学习笔记~自己封装的Curd操作(按需更新的先决条件)
回到目录 我们上一讲中介绍了大叔封装的Mongo仓储,其中介绍了几个不错的curd操作,而对于按需更新内部子对象,它是有条件的,即你的子对象不能为null,也就是说,我们在建立主对象时,应该为子对象赋 ...
- Laravel框架数据库CURD操作、连贯操作使用方法
Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍. Laravel是一套简洁.优雅的PHP Web开 ...
- Node.js 中MongoDB的基本接口操作
Node.js 中MongoDB的基本接口操作 连接数据库 安装mongodb模块 导入mongodb模块 调用connect方法 文档的增删改查操作 插入文档 方法: db.collection(& ...
- php对xml文件进行CURD操作
XML是一种数据存储.交换.表达的标准: - 存储:优势在于半结构化,可以自定义schema,相比关系型二维表,不用遵循第一范式(可以有嵌套关系): - 交换:可以通过schema实现异构数据集成: ...
- LINQ-to-SQL那点事~利用反射在LINQ-to-SQL环境中实现Ado.net的CURD操作
回到目录 对于linq to sql提供的CURD操作,给我们的感觉就是简单,容易使用,更加面向对象,不用拼SQL语句了,这些好处都表示在处理单条实体或者集合长度小的情况下,如果有一个1000条的集合 ...
随机推荐
- CSS盒模型的介绍
CSS盒模型的概念与分类 CSS盒模型就是一个盒子,封装周围的HTML元素,它包括内容content.边框border.内边距padding.外边距margin. CSS盒模型分为标准模型和 ...
- Power BI 与 Azure Analysis Services 的数据关联:4、Power BI 连接到Azure Analysis Services 并展示
Power BI 与 Azure Analysis Services 的数据关联:4.Power BI 连接到Azure Analysis Services 过使用服务器名称别名,用户可以使用较短 ...
- LaTeX:图形的填充(生成阴影图形)
将内网和外网看到的综合整理. 韦恩图Venn \documentclass{standalone} \usepackage{tikz} %导出为图片需要安装imagemagick %https://t ...
- wap2app(六)-- wap2app的原生标题头无法隐藏
大概有一个星期没有用HBuilder打包,今天更新了HBuilder版本再继续打包,就出现了一系列问题.其中有一个就是打包之后,除首页外,其他页面多出了原生标题,如下图: 查阅资料,打开 sitema ...
- excel中如何隐藏列和取消隐藏列
https://jingyan.baidu.com/article/148a192191dc9a4d71c3b11c.html excel如何隐藏列 1 先看下原表格是怎么样的. 2 隐藏列方法一:首 ...
- sql server 运维时CPU,内存,操作系统等信息查询(用sql语句)
我们只要用到数据库,一般会遇到数据库运维方面的事情,需要我们寻找原因,有很多是关乎处理器(CPU).内存(Memory).磁盘(Disk)以及操作系统的,这时我们就需要查询他们的一些设置和内容,下面讲 ...
- server 2008 软阵列
RAID0:没有容错功能,等.两块以上的硬盘.RAID1:不能提高速度,有容错功能,等.注意:只能用两块硬盘,有的地方说可以用两块以上,你不信试试三块硬盘,肯定添加不了,但是可以做raid10.RAI ...
- Django电商项目---完成登录验证和用户中心(个人信息)day3
登录验证的实现 背景说明: 用户在商品界面选择商品后,在点击购物车或者结算订单之前 需要完成用户的登录验证,这里用装饰器来完成 创建装饰器类: df_user/user_decorator.py ...
- MySQL视图 索引 存储过程 触发器 函数
视图: 也就是一个虚拟表(不是真实存在的),它的本质就是根据SQL语句获取动态的数据集,并为其命名.用户使用时只需要使用命名的视图即可获取结果集,并可以当做表来使用.它的作用就是方便查询操作,减 ...
- 五、git创建及合并分支
1. 创建并切换到dev分支 git checkout -b dev // git checkout命令加上-b参数表示创建并切换,相当于以下两条命令 git branch dev git check ...