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

原文地址:https://www.cnblogs.com/chun321/p/8918759.html