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}})