mongoDB启动:
只需要在 MongoDB 安装目录的 bin 目录下执行 mongod 即可。
主要命令:
1.show dbs :显示所有的数据库
2.db : 显示当前数据库
3.use xxx:指定连接xxx数据库
保留数据库:
1.admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
2.local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
3.config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
3.创建表:
使用use xxx ,若xxx不存在则创建,若存在则直接切换。
4.删除数据库:
db.dropDatabase()
5.删除集合:
db.collection.drop()
6.创建集合:
db.createCollection(name, options)
7.插入:
db.COLLECTION_NAME.insert(document)
db.col.save(document) //与insert区别是若指定id则更新该id的值(document是一个数据变量)
db.collection.insertMany([{"b": 3}, {'c': 4}])//插入多条记录
8.更新文档:
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})//multi表示是否更新符合条件的所有的记录,若为false则只改变第一条
在3.2版本开始,MongoDB提供以下更新集合文档的方法:
- db.collection.updateOne() 向指定集合更新单个文档
- db.collection.updateMany() 向指定集合更新多个文档
首先我们在test集合里插入测试数据
use test db.test_collection.insert( [ {"name":"abc","age":"25","status":"zxc"}, {"name":"dec","age":"19","status":"qwe"}, {"name":"asd","age":"30","status":"nmn"}, ] )
更新单个文档
> db.test_collection.updateOne({"name":"abc"},{$set:{"age":"28"}}) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 } > db.test_collection.find() { "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "zxc" } { "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "qwe" } { "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "nmn" } >
更新多个文档
> db.test_collection.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}}) { "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 } > db.test_collection.find() { "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "xyz" } { "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "xyz" } { "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "xyz" } >
9.删除集合中的数据:
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)//第一个参数表示要删除数据的查询条件,第二个表示是否至删除一条,1或者true为是,false为找到数据全删,默认是全删除
remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。
如删除集合下全部文档:
db.inventory.deleteMany({})
删除 status 等于 A 的全部文档:
db.inventory.deleteMany({ status : "A" })
删除 status 等于 D 的一个文档:
db.inventory.deleteOne( { status: "D" } )
10.查询(与关系数据对应):
db.collection.find(query,projection)
范例 | RDBMS中的类似语句 | ||
---|---|---|---|
等于 | {<key>:<value> } | db.col.find({"by":"菜鸟教程"}).pretty() | where by = '菜鸟教程' |
小于 | {<key>:{$lt:<value>}} | db.col.find({"likes":{$lt:50}}).pretty() | where likes < 50 |
小于或等于 | {<key>:{$lte:<value>}} | db.col.find({"likes":{$lte:50}}).pretty() | where likes <= 50 |
大于 | {<key>:{$gt:<value>}} | db.col.find({"likes":{$gt:50}}).pretty() | where likes > 50 |
大于或等于 | {<key>:{$gte:<value>}} | db.col.find({"likes":{$gte:50}}).pretty() | where likes >= 50 |
不等于 | {<key>:{$ne:<value>}} | db.col.find({"likes":{$ne:50}}).pretty() | where likes != 50 |