搜索
您的当前位置:首页正文

MongoDB基本操作命令

来源:二三娱乐

MongoDB数据类型

MongoDB创建/删除数据库

use DATABASE_NAME 如果数据库不存在,创建数据库,否则切换指定数据库
show dbs 查看所有数据库
db.dropDatabase() 删除当前数据库

MongoDB创建/删除集合

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

2.1 capped 布尔型 (可选)如果为true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数
2.2 autoIndexId 布尔 (可选)如为true,自动在 _id 字段创建索引。默认为 false。
2.3 size 数值(可选)为固定集合指定一个最大值(以字节计)。如果 capped 为 true,也需要指定该字段。
2.4 max 数值 (可选)指定固定集合中包含文档的最大数量。

例如:创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

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

show collections 查看已有集合
db.collection.drop() 删除集合 返回值为true和false

在MongoDB中不需创建集合。当插入一些文档,MongoDB会自动创建。###

MongoDB文档增删改查

文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
db.COLLECTION_NAME.insert(document) 向集合中插入文档
db.COLLECTION_NAME.save(document) 如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
update(),save()方法用于更新已存在的文档。update()语法格式如下:

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

例如:更改title "MongoDB 教程"为 "MongoDB"。设置 multi 参数为 true,会修改多条相同的文档。否则只会更新找到的第一条文档。

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})

save()方法通过传入的文档来替换已有文档。语法格式如下:

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

remove()是用来移除集合中的数据。语法格式如下:

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

参数:query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档。

如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

如果你想删除所有数据,可以使用以下方式(类似常规 SQL 的 truncate 命令):

db.COLLECTION_NAME.remove({})

db.COLLECTION_NAME.find(query, projection) 查看已插入文档
参数:query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
db.COLLECTION_NAME.find().pretty() 以格式化的方式来显示所有文档
db.COLLECTION_NAME.findOne() 返回一个文档

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

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

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

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

条件操作符

(>) 大于 - $gt  
(<) 小于 - $lt  
(>=) 大于等于 - $gte  
(<= ) 小于等于 - $lte  

例子:db.COLLECTION_NAME.find({"key" : {$gt : 100}})

Top