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条的集合 ...
随机推荐
- 【代码笔记】Web-ionic tab(选项卡)
一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- SQLite保存报错sqlite.SQLiteConstraintException: UNIQUE constraint failed: ······ code 1555
往数据库里保存数据的时候报错,用的afinal框架,明明在save操作之前执行了一遍deleteAll操作,还是报错. 百度了一下说报这种错有两种情况:一是定义的字段为not null ,插入时对应的 ...
- Android事件总线(四)源码解析otto
前言 上一篇文章中讲到了otto的用法,这一篇我们来讲一下otto的源码.可能有人觉得otto过时了,但是通过源码我们学习的是高手设计otto时的设计理念,这种设计理念是不过时的. otto各个类的作 ...
- (小技巧)Sql server查看sql语句的执行时间(转)
转自CSDN: 在写数据库sql的时候,我们往往很关心该sql语句的执行效率,如下小技巧可以帮助程序员简单快速的得到某条或某几条sql的执行时间. declare @d datetime set @d ...
- JavaScript大杂烩2 - 理解JavaScript的函数
JavaScript中的字面量 书接上回,我们已经知道在JavaScript中存在轻量级的string,number,boolean与重量级的String,Number,Boolean,而且也知道了之 ...
- 查看neighbors大小对K近邻分类算法预测准确度和泛化能力的影响
代码: # -*- coding: utf-8 -*- """ Created on Thu Jul 12 09:36:49 2018 @author: zhen &qu ...
- [20171120]bash使用here documents的一个小细节.txt
[20171120]bash使用here documents的一个小细节.txt --//昨天看bash文档,,发现一些小细节,做一个记录,就是EOF加引号的问题. command <<' ...
- 在 Azure Resource Manager 模板中使用托管磁盘
本文介绍使用 Azure Resource Manager 模板预配虚拟机时托管与非托管磁盘之间的差异. 这有助于将现有模板从使用非托管磁盘更新为使用托管磁盘. 我们将使用 101-vm-simple ...
- scrapy之spider模块
scrapy中的spider的用法 : 1.scrapy命令行可以传参数给构造器 scrapy crawl myspider -a category=electronics 构造器接收传入的参数 im ...
- < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />的意义
X-UA-Compatible是神马? X-UA-Compatible是IE8的一个专有<meta>属性,它告诉IE8采用何种IE版本去渲染网页,在html的<head>标签中 ...