MongoDB基础命令操作

 

一、展示所有数据库

二、查看当前数据库

三、查看当前数据库的所有集合

四、使用数据库(若没有自动创建)

五、插入数据(没有集合自动创建)

六、删除当前数据库

七、删除集合

八、更新数据

(一)语法介绍

(二)实例

1、查找到字段更新整个文档

2、查找仅更新本条数据指定字段

3、查找年龄大于等于20的并修改年龄为21(查找到的第一条)

4、查找到年龄大于等于20的修改年龄为23(全部)

5、查询没有的是否插入

九、查找数据

1、查找所有

2、查找class为01 或02的

3、查找money大于1000 或class为01 或者02 的(注:数字才有大小之分)

4、查找age大于18 且class为01 或者02 的

5、查找返回指定个数文档

6、跳过第一个文档

7、排序

8、计数count

9、聚合

九、删除文档


一、展示所有数据库

show dbs

二、查看当前数据库

db

三、查看当前数据库的所有集合

show tables

或者

show collections

 

四、使用数据库(若没有自动创建)

use test

五、插入数据(没有集合自动创建)

db.students.insert({"name":"tang"})

六、删除当前数据库

db.dropDatabase()

七、删除集合

db.students.drop()

八、更新数据

(一)语法介绍

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert: 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi: 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern:可选,抛出异常的级别。

(二)实例

1、查找到字段更新整个文档

db.class.update({"name":"tang"}{"age":18})

2、查找仅更新本文档指定字段

db.class.update({"name":"ls"},{$set:{"age":18}})

3、查找年龄大于等于20的并修改年龄为21(查找到的第一条)

db.class.update({"age":{$gte:20}},{$set:{"age":21}})

4、查找到年龄大于等于20的修改年龄为23(全部)

db.class.update({"age":{$gte:20}},{$set:{"age":21}},false,true)

5、查询没有的是否插入

若没有,插入数据

db.class.update({"name":"lys"},{$set:{"age":21}},true,true)

若没有,不插入

db.class.update({"name":"lys"},{$set:{"age":21}},false,true)

九、查找数据

1、查找所有

返回所有文档
db.class2.find()


返回所有文档(去除id字段)
db.class2.find({},{_id:0})

返回一个文档
db.class2.findOne()

格式化展示

db.class2.find().pretty()

 

2、查找class为01 或02的

db.class2.find({$or:[{"class":"01"},{"class":"02"}]}).pretty()

3、查找money大于1000 或class为01 或者02 的(注:数字才有大小之分)

db.class2.find({$or:[{"class":"01"},{"class":"02"},{"money":{$gt:1000}}]}).pretty()

补充条件操作符:

$lte  大于等于
$lt   大于
$gte  小于等于
$gt   小于
$ne   不等于
$eq   等于

4、查找age大于18 且class为01 或者02 的

db.class2.find({"age":{$gt:18},$or:[{"class":"01"},{"class":"02"}]}).pretty()

5、查找返回指定个数文档

db.class.find({},{"title":1,_id:0}).limit(3)

6、跳过第一个文档

db.class.find({},{"title":1,_id:0}).limit(1).skip(1)

7、排序

降序排序

db.class.find({},{"title":1,_id:0}).sort({"like":-1})

升序排序

db.class.find({},{"title":1,_id:0}).sort({"like":1})

8、计数count

db.class.count()

9、聚合

按class分组并计数

db.class.aggregate([{$group : {_id : "$class", num_tutorial : {$sum : 1}}}])

补充表达式:

$sum   计算总和
$avg   求平均值
$min   获取集合中所有文档对应值得最小值
$max   获取集合中所有文档对应值得最大值
$first 根据资源文档的排序获取第一个文档数据
$last  根据资源文档的排序获取最后一个文档数据

 

九、删除文档

db.collection.remove(
   <query>,
   <justOne>
)

2.6版本以后的

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 1,则只删除一个文档。
  • writeConcern :(可选)抛出异常的级别。
db.class.remove(DELETION_CRITERIA,1)删除一条

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章