非关系型数据库MongoDB

(一)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 可以是如下参数:

image.png

在插入文档时,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);

你可能感兴趣的:(非关系型数据库MongoDB)