zoukankan
html css js c++ java
mongo 笔记
mongo数据库的 增删改查
mongo数据库的 增删改查
注意事项
1.需要用管理员身份打开cmd控制台 然后输入: mongod --dbpath D:datadb
mongod 开机
mongo 使用mongo
2.上面输入完以后窗口是不可以关的
3.要对mongo进行操作,需要再开一个cmd窗口,输入mongo回车 进入到mongo的环境中。
1.基本的一些操作
1.show dbs :列出所有的数据库
2.use 数据库名字
用来指定使用哪一个数据库; 当这个数据库名不存在的时候 就会新建这个数据库
3.db : 查看当前所在的数据库
db.表名
如果这个表名存在就使用这个表
如果这个表名不存在就会在当前的 数据库里面新建这个表名,也就是集合
4.cls :清屏幕
5.db.createCollection("表名字"):向当前数据库添加表
6.show tables:显示当前数据库下面的表
2.增
insert
例如:db.student.insert({ "name":"liuchun","age":18,"sex":"woman" }); 这里的student 就是集合,类似于关系型数据库中的表; 在这个集合里面有许多json; 如果在输入该命令的时候没有这个集合,就会自动新创建这个集合;
3.导入
mongoimport
例如:mongonimport --db test --collection restaurants --drop --file primer-mytest.json; --db test : 是指定想要往哪个数据库里面导入数据; --collection restaurants : 是指定想要往哪个集合中导入数据; --drop : 是把当前这个集合清空; dataset.json : 就是自己想要导入的数据文件名
4.删
drop
db.dropDatabase( ): 删除当前所在的数据库
db.表名.drop( ):删除这个指定表名的表
remove( )
db.chunchun.remove( )
db.student.remove({ "age":20},true)
删除在学生表中的年龄 等于20,的第一条数据; 如果不加第二个参数true, 就是把这个集合满足条件 的都删掉;
db.student.remove( )
把学生表里面的东西都删掉,但是这个 表还在;
5.改
update( )
update({修改的条件} , {修改器:{修改的内容}} , 第三个参数 , 第四个参数)
修改器:
参考网址:https://www.cnblogs.com/myrunning/p/5655615.html
$set 修改
数组修改器
$push 数组修改器
如果字段的值是数组类型; 要加入新值的话,就要用 这个;往数组末尾加入一个 元素;
$addToSet 数组修改器,作用 和$ne差不多,更方便点
$ne 数组修改器
在查询文档中,如果这个值不在 数组里面就加进去;如果已经存在 就不添加;
$each 要喝$addToSet组合使用; 可以一次插入几个不重复的值;
db.users.update({"_id":ObjectId(_id)} , {$addToSet:{ "emails": $each:["joe@example.com","joe@python.com","joe@php.com"]}})
$pop 根据key来决定; 是删除数组的尾端,还是 头部;
{$pop:{key:1}} 从数组末尾删除一个元素 {$pop:{key:-1}} 从数组头部删除一个元素
$pull 会删除指定的key的值
{$pull: { "name": ["liuchun" , "liunian"] } }
$unset 删除字段
$inc 相当于变成语言的“+=”
$rename 重命名某个列
如果在指令中没有修改器,就是用后面的数据去替换符合前面条件的 第一条数据
第三个参数
将这个参数设置为true,是存在就更新,不存在就插入; 设置为false就是当不存在的时候不插入,这个是默认的值
第四个参数
默认值是false,只更新找到的第一条数据 如果设置为true就把所有符合条件的记录都更新
在mongo中还支持使用js代码,包括申明变量循环等
例如:for(var i=0;i<10;i++){ db.chunchun.insert({name:“lala" , age: i})
6.查
find()
“$lt”、“$lte”、“$gt”、“$gte”
db.student.find( )
括号里面没有参数的话就是查找当前集合的所有数据
db.student.find( {"age":{$gt:20} }
查找学生表里面的所有年龄大于20的学生
db.student.find( {"age":{$gt:20} } .sort({ "age":1, "name":-1})
查找学生表里面的所有年龄大于20的学生; 并且进行排序,以年龄正序排,名字倒序排
当sort的key后面的值给1就是正序,反之就是倒序
or查询
$in
db.student.find( {"age":{ $in : [20,10,30] } } )
年龄在10,20,30中的学生
$or
db.student.find( { $or : [ {"age":"10"} , {"name":"la"} ] } )
年龄10岁 或者 名字是 la 的学生
$mod 取余
db.student.find( {"age":{ $mod : [20,3] } } )
取所有年龄取余20,等于3的学生
$not 取反
db.student.find( {"age":{ $not : [ { "age":10 } ] } } )
$exists 存在
db.student.find( {"age":{ $exists : true } } )
正则表达式
db.student.find( { name : /acme.*corp/i } )
i是区分大小写
$size 个数
find(参数1,参数2) 传两个参数的用法
db.student.find( { },{"age":1 , "name":1 }
第一个是要查找这个表的所有数据; 第二个参数是要查找后只返回age和name字段; 如果不加上“_id":0 ;这里返回的结果还是有_id字段
“age":1 表示要展示; 如果是"age":0 表示不展示
db.student.find( { },{"limit":1 , "skip":1 }
limit( 1 ) : 限制只选中一条数据
skip( 1 ): 是跳过第一条数据,从第二条开始读
一般用在分页的时候
7.导出
mongoexport : 可以把一个collecton到处成 Json格式或者Csv格式的文件。
mongoexport -d dbname -c collectionname -o file --type json/csv -f field 参数说明: -d :数据库名 -c :collection名 -o :输出的文件名 --type : 输出的格式,默认为json -f :输出的字段,如果-type为csv,则需要加上-f "字段名" 、示例: mongoexport -d mongotest -c users -o D:/users.json --type json -f "_id,user_id,user_name,age,status"
输入这个命令是要在开启了mongo 的服务,而且不是在mongo的环境下
8.导入
mongoimport -d dbname -c collectionname --file filename --headerline --type json/csv -f field 参数说明: -d :数据库名 -c :collection名 --type :导入的格式默认json -f :导入的字段名 --headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段 --file :要导入的文件 、示例: mongoimport -d mongotest -c users --file D:/users.json --type json
查看全文
相关阅读:
Bootstrap--模仿官网写一个页面
【ASP.NET基础】客户端、服务器端的数据验证 + CKEditer
初识--Ajax & Json
ASP.NET 状态的传递和保存
启动项目报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loadT
Oracle数据库导不进去
Tomcat一闪就退
Oracle提示已连接到空闲的实例
创建数据库表空间
cmd命令导入.dmp文件
原文地址:https://www.cnblogs.com/chun321/p/8918759.html
最新文章
Android存储
Android动画
每天一点Android干货-Activity的生命周期
每天一点Android干货-时间与日期、进度条
访问tp3.2的项目时出现No input file specified.的解决办法
php 无法正确获取系统当前时间的解决办法
关于windows下的虚拟机Homestead在推送代码上github 步骤
关于Laravel 迁移数据库的问题
关于Laravel 无法下载的问题
关于Linux 虚拟机如何才能ping 通外网
热门文章
阿里云服务器 ECS Linux 禁止IP 通过 SSH 登录
用Navicat连接阿里云ECS服务器上的MySQL数据库
在虚拟机安装windows xp时所需要的序列号
虚拟机挂载光盘出现的小问题及解决办法
AngularJS 学习笔记(1)
Bootstrap 小技巧以及相关资源整理
【.NET基础】--委托、事件、线程(3)
【.NET基础】--委托、事件、线程(2)
【.NET基础】--委托、事件、线程(1)
【ASP.NET基础】简单企业产品展示网站--产品编辑CRUD
Copyright © 2011-2022 走看看