(一)MongoDB 创建数据库
use DATABASE_NAME # 如果数据库不存在,则创建数据库,否则切换到指定数据库
例:
> use ceshi # 创建数据库或者切换到已存在此名称的数据库
switched to db ceshi
> db # 查看目前数据库
ceshi
> show dbs # 查看所有数据库
admin 0.000GB
config 0.000GB
local 0.000GB
刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 ceshi 数据库插入一些数据
>db.ceshi.insert({"name":"sanmi"}) # 插入数据,数据形式以字典形式
WriteResult({ "nInserted" : 1 })
> show dbs # 再查看已经有了ceshi库
admin 0.000GB
config 0.000GB
local 0.000GB
ceshi 0.000GB
(二)MongoDB 删除数据库
db.dropDatabase() # 删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名
例:
> show dbs # 先查看目前有的数据库
admin 0.000GB
config 0.000GB
local 0.000GB
ceshi 0.000GB
> use ceshi # 切换到数据库ceshi
switched to db ceshi
> db.dropDatabase() # 执行删除命令
{ "dropped" : "ceshi", "ok" : 1 }
(三)删除集合
db.collection.drop()
例:
> use ceshi
switched to db ceshi
> db.createCollection("one") # 先创建集合(集合名one),类似数据库中的表
> show tables
one
> db.set.drop()
true
(四)创建集合
db.createCollection(name, options) # name: 要创建的集合名称,options: 可选参数, 指定有关内存大小及索引的选项
options 可以是如下参数:
在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段
例:
# 创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
> db.createCollection("mycol", { capped : true, autoIndexId : true, size :
6142800, max : 10000 } )
{ "ok" : 1 }
在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
> db.mycol2.insert({"name" : "sanmi"})
> show collections
mycol2
(五)删除集合
db.collection.drop() # 如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false
例:
>use ceshi
switched to db ceshi
>show collections
one
>db.one.drop() # 删除集合命令
true
(六)插入文档
db.COLLECTION_NAME.insert(document) # 使用 insert() 或 save() 方法向集合中插入文档
例:
# 以下文档可以存储在 MongoDB 的 runoob 数据库 的 col 集合中:
>db.col.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
# 查看已插入文档:
> db.col.find()
{ "_id" : ObjectId("56064886ade2f21f36b03134"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
# 也可以将数据定义为一个变量,如下所示
> document=({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
});
# 执行后显示结果如下
{
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
# 执行插入操作
> db.col.insert(document)
WriteResult({ "nInserted" : 1 })
插入文档也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
- 3.2 版本后还有以下几种语法可用于插入文档:
db.collection.insertOne():向指定集合中插入一条文档数据
db.collection.insertMany():向指定集合中插入多条文档数据
# 插入单条数据
> var document = db.collection.insertOne({"a": 3})
> document
{
"acknowledged" : true,
"insertedId" : ObjectId("571a218011a82a1d94c02333")
}
# 插入多条数据
> var res = db.collection.insertMany([{"b": 3}, {'c': 4}])
> res
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("571a22a911a82a1d94c02337"),
ObjectId("571a22a911a82a1d94c02338")
]
}
# 一次插入多条数据
var arr = [];
for(var i=1 ; i<=20000 ; i++){
arr.push({num:i});
}
db.numbers.insert(arr);