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条的集合 ...
随机推荐
- Python从入门到精通
最近研究了一下Python,名不虚传,确实挺精彩. 学习一门新的语言,我认为从入门到精通的做法是:下SDK.装IDE.练教程.结合工作应用.不断踩坑进阶.梳理总结 1.下SDK(2.7.15) 下载地 ...
- maven(二):创建一个可用的maven项目,完整过程
环境:eclipse4.5 (内置maven插件) 创建maven项目 文件菜单--新建--其他-- maven project 下一步 选择web 结构 group id: 指项目在maven本地 ...
- python第四十三天--第三模块考核
面向对象: 概念:类,实例化,对象,实例 属性: 公有属性:在类中定义 成员属性:在方法中定义 私有属性:在方法中使用 __属性 定义 限制外部访问 方法: 普通方法 类方法: @classmeth ...
- npm install node-sass 本地安装失败
$ npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taob ...
- Python描述符 (descriptor) 详解
1.什么是描述符? python描述符是一个“绑定行为”的对象属性,在描述符协议中,它可以通过方法重写属性的访问.这些方法有 __get__(), __set__(), 和__delete__().如 ...
- openSUSE搭建OpenVPN
目录 openSUSE搭建OpenVPN 环境 安装openVPN服务端 安装easy-rsa工具 配置vars文件 创建服务端证书及key 创建客户端证书 疏理证书文件 服务端配置 启动openvp ...
- 【PAT】B1072 开学寄语(20 分)
代码注释应该很清晰 先存下违禁品,放到数组中,未使用map #include<cstdio> #include<string.h> int wupin[10],N,M; boo ...
- python学习--Django虚拟环境搭建
一 . 为什么选择搭建虚拟环境 搭建一个只对本次项目有用的虚拟环境,而不影响主环境 二 . 安装前准备 # 1. 安装 python # 2. 安装virtualenvwrapper # ...
- CorelDRAW(cdr) 2018安装教程详解
令人期待的coreldraw2018最新版已经发布了,相信各位设计从业者已经迫不及待想要知道这次版本会带来什么新的东西,本次小编带来的coreldraw2018破解版,附有注册补丁,激活之后可以永久免 ...
- VS Code 快捷键使用小技巧
相关文档 官方文档(英文版):Documentation for Visual Studio Code 中文文档(未完成):GitHub - jeasonstudio/CN-VScode-Docs: ...