mongodb的基本操作
mongodb操作命令行形式
进入mongodb的命令行
保证安装并成功启动服务
启动服务用
mongod --dbpath .
进入mongodb客户端命令
mongo
查看当前存在的所有数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
spider_data 0.002GB
可以看到我有四个库admin,config,local,spider_data(这是我之前创建好的你的电脑没有这个。)
local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。慎用这三个库,一般情况下我们需要创建一个符合自己业务逻辑的库。像我就创建了spider_data这个库,下面我们看看如何创建数据库。
创建数据库
如果数据库不存在,则创建数据库,否则切换到指定数据库。
这里我们是做一个测试所以用test_db作为测试数据库的名字。
> use test_db
switched to db test_db
>
输入db可以查看当前的数据库名.
> db
test_db
>
此时输入show dbs会发现还是原来的几个库,我们给新创建的库,加入数据就可以显示了。
数据插入操作
如果集合不存在,插入操作将创建集合。
在集合中,具有唯一主键_id
。如果在插入文件中未声明_id
;MongoDB将自动使用ObjectIds
作为_id
MongoDB提供了保存数据的方法一共有三个:
- db.collection.insertOne() 插入一条
- db.collection.insertMany() 插入多条
- db.collection.insert() 插入一条或者多条
其中collection就是表名,这里我们在上面的test_data库里创建test这个表并插入数据。
首先我们使用insertOne插入一条数据
> db.test.insertOne({'id':11,'name':'daming1m'})
{
"acknowledged" : true,
"insertedId" : ObjectId("5bb98a36cb094f7674e574ea")
}
使用inserMany插入多条,类型列表字典
> db.test.insertMany([{'id':1,'name':'daming1m'},{'id':2,'name':'lisa1m'}])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5bb989a4cb094f7674e574e8"),
ObjectId("5bb989a4cb094f7674e574e9")
]
}
使用insert可以插入一条和多条
> db.test.insert({'id':123,'name':'daming'})
WriteResult({ "nInserted" : 1 })
> db.test.insert({'id':1231,'name':'daming1'},{'id':1241,'name':'lisa1'})
WriteResult({ "nInserted" : 1 })
观察发现上面即使两条数据也是显示影响了一条,所以使用insert来插入多条的时候,注意json外面要使用[]
> db.test.insert([{'id':123,'name':'daming'},{'id':124,'name':'lisa'}])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
关于insert和insertmany插入多条的操作的区别,目前不知道什么区别,有知道好心人麻烦告诉我下。