一、基础语法归纳

(1)创建数据库

use DATABASE_NAME <数据库名>

注意: 在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

(2)查看所有数据库

show dbs

(3)删除数据库

切换到要删除的数据库:db DATABASE_NAME;

然后执行:

db.dropDatabase()

(4)创建集合

db.createCollection("COLLECTION_NAME",options)

options 可以是如下参数:

字段

类型

描述

capped

布尔

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

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

autoIndexId

布尔

3.2 之后不再支持该参数。(可选)如为 true,自动在 _id 字段创建索引。默认为 false。

size

数值

(可选)为固定集合指定一个最大值,即字节数。

如果 capped 为 true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

db.createCollection("myMongoDB", { capped : true, autoIndexId : true, size : 
   6142800, max : 10000 } )

(5)删除集合

db.COLLECTION_NAME.drop()

(6)展示集合

show collections

(7)插入文档

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

  • save():如果 _id 主键存在则更新数据,如果不存在就插入数据。该方法新版本中已废弃,可以使用 db.collection.insertOne() 或 db.collection.replaceOne() 来代替。
  • insert(): 若插入的数据主键已经存在,则会抛 org.springframework.dao.DuplicateKeyException 异常,提示主键重复,不保存当前数据。
db.COLLECTION_NAME.insert(document)
或
db.COLLECTION_NAME.save(document)

        3.2 版本之后新增了db.collection.insertOne()db.collection.insertMany()

        db.collection.insertOne() 用于向集合插入一个新文档,db.collection.insertMany() 用于向集合插入一个多个文档。

db.collection.insertOne(
   <document>,
   {
      writeConcern: <document>
   }
)
db.collection.insertMany(
   [ <document 1> , <document 2>, ... ],
   {
      writeConcern: <document>,
      ordered: <boolean>
   }
)

参数说明

document

要写入的文档

writeConcern

写入策略,默认为 1,即要求确认写操作,0 是不要求

ordered

指定是否按顺序写入,默认 true,按顺序写入

(8)更新文档

        MongoDB 使用 update() 和 save() 方法来更新集合中的文档。update() 方法用于更新已存在的文档,save() 方法通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。

使用Update()方法:
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

使用Save()方法:
db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)

参数说明:

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

mongodb入门 mongodb基础知识_主键

 

mongodb入门 mongodb基础知识_mongodb_02

mongodb入门 mongodb基础知识_条件语句_03

 

 (9)删除文档

remove() 方法的基本语法格式如下所示:
db.collection.remove(<query>,<justOne>)

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:
db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
  • query:(可选)删除的文档的条件。
  • justOne: (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
  • writeConcern:(可选)抛出异常的级别。

mongodb入门 mongodb基础知识_mongodb_04

(10) 查询文档

db.collection.find(query, projection)
  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

db.col.find().pretty()

mongodb入门 mongodb基础知识_主键_05

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

db.col.find({key1:value1, key2:value2}).pretty()

OR条件:MongoDB OR 条件语句使用了关键字 $or。

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

(11)条件语句

条件语句

$gt

大于>

$lt

小于<

$gte

大于等于>=

$lte

小于等于<=