MongoDB(二) Shell 命令
创建数据库
MongoDB 创建数据库的语法格式如下:
use DATABASE_NAME
如果数据库不存在,则创建数据库,否则切换到指定数据库。
如果你想查看所有数据库,可以使用 show dbs 命令:
show dbs
删除数据库
MongoDB 删除数据库的语法格式如下:
db.dropDatabase()
删除当前数据库,默认为 test,你可以使用 db 命令查看当前数据库名。
删除集合
集合删除语法格式如下:
db.collection.drop()
插入文档
文档的数据结构和JSON基本一样。
所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert(document)
示例:
db.col.insert({"title": "个人主页",
"description": "zhongchun的主页",
"by": "zhongchun",
"url": "http://yuzhongchun.com",
"tags": ['mongodb', 'database', 'NoSQL'],
"likes": 100})
document=({"title": "个人主页", "description": "zhongchun的主页", "by": "zhongchun", "url": "http://yuzhongchun.com", "tags": ['mongodb', 'database', 'NoSQL'], likes: 100})
// 执行后如下
{
"title" : "个人主页",
"description" : "zhongchun的主页",
"by" : "zhongchun",
"url" : "http://yuzhongchun.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
// 执行插入操作
db.col.insert(document)
WriteResult({ "nInserted" : 1 })
插入文档也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。
update() 方法
语法格式如下:
db.collection.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 :可选,抛出异常的级别。
示例:
db.col.update({'title': "个人主页"}, {$set:{'title': "BerMaker"}})
save() 方法
语法格式如下:
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
参数说明:
document : 文档数据。
writeConcern :可选,抛出异常的级别。
示例:
db.col.save({"_id" : ObjectId("59a6a3d4963d665550f6e2d2"), "title" : "不涸", "description": "zhongchun的主页"})
运行结果:
> db.col.find().pretty()
{
"_id" : ObjectId("59a6a3d4963d665550f6e2d2"),
"title" : "不涸",
"description" : "zhongchun的主页"
}
删除文档
备份与还原
mongodump -h 10.94.241.53 --port 8017 -d boundary_tool -o /home/map/data/mongo/201708301810
mongorestore -h 10.101.44.169 --port 27017 -d boundary_tool --drop /home/wuzhibin/yuzhongchun/data/mongo/boundary_tool
drop 表示先删除所有的记录,然后恢复。
单表导出与导入
导出
mongoexport --host 10.206.210.30 --port 27019 --db boundary_tool --collection boundary --out boundary.json
导入
mongoimport --host 127.0.0.1 --port 8017 --db boundary_tool --collection boundary --file boundary.json