MongoDB基本操作

MongoDB操作

创建数据库 :

use database_name

  如果数据库不存在就创建数据库, 存在就切换到指定的数据库.

查看所有的数据库 :

show dbs

查看当前所在数据库 :

db

然而 :

  

  上图中查看当前所在的数据库是: test, 但是show dbs时却没有test库. 这是因为test库是空的.

  注意 : 在MongoDB中, 集合(表)只有在插入内容之后才会创建!!! 创建集合之后要再插入一个文档(记录), 集合才会真正的创建.

  注意2 : MongoDB中默认的数据库为test, 如果没有创建新的数据库, 集合将存放在test数据库中.

删除数据库 :

db.dropDatabase()

  删除当前数据库, 默认为test, 可以使用db命令查看当前所在的数据库.

创建集合(表) :

  MongoDB中使用createCollection()方法来创建集合.

db.createCollection(name, options)
#参数说明
    # name : 要创建的集合名称
    # options : 可选参数, 指定有关内存大小及索引的选项

  options可以是如下参数 :

字段 类型 描述
capped 布尔

(可选)如果为true, 则创建固定集合. 固定集合是指有着固定大小的集合, 当到达最大值时, 它会自动覆盖最早的文档.

当该值为true时, 必须指定size参数

autolndexld 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false
size 数值 (可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段
max 数值 (可选)指定固定集合中包含文档的最大数量

    在插入文档时, MongoDB首先检查固定集合的size子弹, 然后检查max字段

删除集合 :

  MongoDB使用drop()方法删除集合

db.collection.drop()

  返回值 :

    如果成功删除选定集合, 则drop()方法返回true, 否则返回flase

增加和查看文档(数据) :

  MongoDB使用insert()或者save()方法向集合中插入文档

db.COLLECTION_NAME.insert(document)

  上图中d是集合名, 如果该集合不存在数据库中, MongoDB会自动创建该集合并插入文档

  db.d.find()命令是查看文档的命令, 意思即为 : 查看d集合(表)的全部文档(数据)

  也可以将预添加数据赋值给一个变量, 进行变量

# 官方推荐写法
# 插入单条数据
db.表名.insertOne({name:"xxx",age:xx})
# 插入多条数据
db.表名.insertMany([{name:"xxx",age:xx},{name:"xxx",age:xx}])

更新文档 :

  MongoDB 使用 update() 和 save() 方法来更新集合中的文档

  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 :可选,抛出异常的级别

   以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true

# 官方推荐写法
db.表名.updateOne({age:200},{$set:{name:"200",borthday:new Date()}}) # 将age=200的数据, 更新为name=200, borthday:new Date()
db.表名.updateMany({age:{$gt:0}},{$set:{age:200}}) # 将年龄大于0的更新为年龄=200

  save()方法 : 通过传入的文档来替换已有文档

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

# 参数说明
# document : 文档数据。
# writeConcern :可选,抛出异常的级别

删除文档(数据) :

  MongoDB remove()函数是用来移除集合中的数据

  MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯

db.collection.remove(
   <query>,
   <justOne>
)
# 如果MongoDB是2.6版本以上的, 语法为 :
db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

# 参数说明 :
# query :(可选)删除的文档的条件。
# justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
# writeConcern :(可选)抛出异常的级别
# 官方推荐写法
db.表名.deleteOne({name:"xxx"})
db.表名.deleteMany({name:"xxx"})

 查询文档(数据) :

  MongoDB 查询文档使用 find() 方法

  find() 方法以非结构化的方式来显示所有文档

db.表名.find(query, projection)
# 参数说明
# query :可选,使用查询操作符指定查询条件
# projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)
--------------------------------------------------------------------------------
# 如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
db.表名.find().pretty()
# pretty() 方法以格式化的方式来显示所有文档

MongoDB的and条件 :

  MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件

db.表名.find({key1:value1, key2:value2}).pretty()
---------------------------------------------------------------
类似于where语句: where key1=value1 and key2=value2

MongoDB的in条件 :

# 符合其中一个条件就好
db.表名.find({age:{$in: [1,2,3,4]}})

MongoDB的all条件 :

# 查询条件必须全部在被查询内容内
db.表名.find({age:{$all: [1,2,3,4]}})

MongoDB的or条件 :

  MongoDB OR 条件语句使用了关键字 $or,语法格式如下

db.表名.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

MongoDB条件操作符 :

  条件操作符用于比较两个表达式并从mongoDB集合中获取数据

  MongoDB中条件操作符有:

    • (>) 大于 - $gt
      db.表名.find({字段名: {$gt : 100}})
    • (<) 小于 - $lt
      db.表名.find({字段名: {$lt: 100}})
    • (>=) 大于等于 - $gte
      db.表名.find({字段名: {$gte : 100}})
    • (<= ) 小于等于 - $lte
      db.表名.find({字段名: {$lte : 100}})
原文地址:https://www.cnblogs.com/dong-/p/10170215.html