mongodb基本操作
- 控制台启动mongodb
在控制台输入mongo
即可开启mongo shell
在mongo shell中输入help
即可查看mongodb的一些常用命令
数据库操作
- 创建数据库
- 控制台输入
use <db_name>
创建名为db_name
的数据库 - 输入
show dbs
查看所有数据库,会发现没有新建的数据库,这是因为新建的数据库中没有数据,加入数据后就可以看见了。
- 控制台输入
- 删除数据库
- 查看所有数据库
show dbs
- 切换到要删除的数据库
use <db_name>
- 删除数据库
db.dropDatabase()
- 查看所有数据库
- 查看当前数据库
db
- 查看当前数据库中的集合
show collections
注意:mongodb中,数据库和集合不需要手动创建,在创建文档时,如果文档所在的集合或数据库不存在,会自动创建数据库和集合
数据库中的CRUD
- 向数据库中插入文档
-
向集合中插入文档
db.<collection_name>.insert(doc)
实例:db.student.insert( { name:"Tom", age:"18", gender:"男" } )
注意:
1.当在向集合中插入文档时,如果没有给文档指定“_id”属性,数据库会自动为文档添加“_id”属性(objectId(时间戳+机器码))。
2.“_id”可以手动创建,要确保“_id”的唯一性。- 向集合中插入一个文档(只能插入一个)
db.<collection_name>.insertOne()
- 向集合中插入多个文档(只能插入多个文档)
db.<collection_name>.insertMany()
也可以将文档看作一个对象,新建文档对象,然后插入文档对象。实例代码如下:
>document=( { name:"Tom", age:"18", gender:"男" } ) >db.student.insert(document)
- 向集合中插入一个文档(只能插入一个)
-
修改文档
- 修改单个文档
实例:db.<collection_name>.update( <query>, {$set:{index:"update_data"}} )
> db.student.find() }) { "_id" : ObjectId("5d65f436f95b92010e77a99e"), "name" : "Time", "age" : "21", "gender" : "女" } { "_id" : ObjectId("5d660e8af95b92010e77a99f"), "gender" : "男" } { "_id" : ObjectId("5d661116f95b92010e77a9a0"), "name" : "Tom", "age" : "20", "gender" : "男" } > db.student.update({name:"Tom"},{$set:{gender:"女"}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) > db.student.find() { "_id" : ObjectId("5d65f436f95b92010e77a99e"), "name" : "Time", "age" : "21", "gender" : "女" } { "_id" : ObjectId("5d660e8af95b92010e77a99f"), "gender" : "男" } { "_id" : ObjectId("5d661116f95b92010e77a9a0"), "name" : "Tom", "age" : "20", "gender" : "女" } ```
- 修改单个文档
-
修改多个文档
db.<collection_name>.update( <query>, {$set:{index:"update_data"}}, {multi:true} )
实例:> db.student.find() ) { "_id" : ObjectId("5d65f436f95b92010e77a99e"), "name" : "Time", "age" : "21", "gender" : "女" } { "_id" : ObjectId("5d660e8af95b92010e77a99f"), "gender" : "男" } { "_id" : ObjectId("5d661116f95b92010e77a9a0"), "name" : "Tom", "age" : "20", "gender" : "女" > db.student.update({gender:"女"},{$set:{age:"30"}},{multi:true}) WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 }) > db.student.find() ) { "_id" : ObjectId("5d65f436f95b92010e77a99e"), "name" : "Time", "age" : "30", "gender" : "女" } { "_id" : ObjectId("5d660e8af95b92010e77a99f"), "gender" : "男" } { "_id" : ObjectId("5d661116f95b92010e77a9a0"), "name" : "Tom", "age" : "30", "gender" : "女" }
-
查询文档
-
全部查询
db.<collection_name>.find()
-
条件查询
db.<collection_name>.find({query criteria})
实例:> db.student.find({age:"20"} { "_id" : ObjectId("5d661116f95b92010e77a9a0"), "name" : "Tom", "age" : "20", "gender" : "男" }
-
查询结果格式化显示
db.<collection_name>.find(query criteria).pretty()
实例:> db.student.find().pretty() { "_id" : ObjectId("5d65f436f95b92010e77a99e"), "name" : "Tom", "age" : "18", "gender" : "男" } { "_id" : ObjectId("5d660e8af95b92010e77a99f"), "name" : "Tom", "age" : "18", "gender" : "男" }
-
-
删除文档
db.collection.remove( <query>, <justOne> )
-
删除一个文档
db.<collection_name>.remove( delete_criteria, 1 )
-
删除所有文档
db.<collection_name>.remove({})
-
-
删除集合
db.<collection_name>.drop()
-