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条的集合 ...
随机推荐
- node 跨域问题
node跨域有很多方法 1.引入 中间件cors 我觉的最好的方法 var express=require('express'); var cors=require('cors'); var app= ...
- mooc《数据结构》 习题1.8 二分查找
本题要求实现二分查找算法. 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Posi ...
- Jmeter进阶篇之保存测试结果
Jmeter现在真的是一款越来越流行的接口测试工具. 但是通过和老大哥LR相比较,可能有部分同学觉得,LR的图表功能,报告功能不要太强大. 但是小弟jmeter在这方面其实并不差... 今天我们就来学 ...
- mysql主从复制报错(一主一从):从库报错Last_SQL_Errno: 1008
配置完主从复制后(一主一从),在从库删了一个测试库,结果在从库上使用show slave status\G查看主从同步状态报如下错误:Last_Errno: 1008,经过排查得知:主从环境删除要先在 ...
- Linux 学习笔记之超详细基础linux命令 Part 5
Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 4----------------- ...
- Handle的原理(Looper、Handler、Message三者关系)
转载请注明出处:http://blog.csdn.net/lowprofile_coding/article/details/72580044 介绍 前面的内容对Handler做了介绍,也讲解了如何使 ...
- 创建Android Apps的30个经验教训
这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人.这里是我一路走来学到的一些东西,分享给大家: 在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗? 如果一个东西用户看不到, ...
- shell下变量比较最佳实践
https://stackoverflow.com/questions/13617843/unary-operator-expected If you know you're always going ...
- TensorFlow 安装教程
1.准备好Anaconda环境 tensorflow是属于很高层的应用.高层应用的一个比较大的麻烦就是需要依赖的底层的东西很多,如果底层依赖没有弄好的话,高层应用是没法玩转的. 在极客学院有关tens ...
- char/varchar/nvarchar的区别
原文:https://blog.csdn.net/w516162189/article/details/78914035 我们在设计数据库的时候,需要根据需求场景选择合适的字段类型,对数据的执行效率有 ...