mongodb学习

mongodb是NOSQL类型的数据库,非结构化,适合存储大量数据。

学习版本3.4.4

正确安装,mongodb后。首先需要创建数据库目录data,这里我默认在系统盘(C盘)下启动服务,则会默认在C盘的根目录下创建data数据库目录。
如果不是在C盘下启动mongodb服务,则需要创建data目录和日志,并在启动mongodb服务时制定data路径和日志路径。
参考mongodb启动及配置

mongodb创建用户权限

参考mongodb用户创建

创建管理员账户

通过非授权的方式启动mongo

1
2
3
$ use admin

$ db.createUser({user:"admin",pwd:"123456",roles:["root"]})

提示:用户名和密码可随意定
通过授权的方式启动mongo

1
$ mongod -auth

执行该语句,认证登录

1
$ db.auth("admin", "123456")

创建指定数据库账户

切换到指定数据库

1
$ use mytest

创建用户

1
$ db.createUser({user: "root", pwd: "123456", roles: [{ role: "dbOwner", db: "mytest" }]})

提示:测试方式创建管理账户,需要以授权方式启动mongo

mongodb基本操作

参考mongodb基本操作

数据库的创建

1
2
3
$ use DATABASE_NAME

example:$ use myDatabase

数据库的查询

1
$ show dbs

数据库的删除

1
2
$ use DATABASE_NAME
$ db.dropDatabase()

集合的创建

1
2
$ db.createCollection(name, options)
example:$ db.createCollection('myCollection')

集合的查询

1
$ show collections

集合的删除

1
2
$ db.COLLECTION_NAME.drop()
example:$ db.myCollection.drop()

文档的创建

1
2
$ db.COLLECTION_NAME.insert(document)
example:$ db.myCollection.insert({name:'liu',sex:'男',age:25})

文档的查询

1
2
3
$ db.COLLECTION_NAME.find()
$ db.COLLECTION_NAME.find().pretty() //格式化查询
example:$ db.myCollection.find({name:'liu',age:25}).pretty()

提示:上面的查询find里的数据即为查询条件,相当于where name='liu' and age=25
除了find() 方法外,还有一个 findOne() 法,返回一个文件。

文档的删除

MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria ,第二是justOne标志:
deletion criteria :(可选)删除标准,根据文件将被删除。
justOne : (可选)如果设置为true或1,然后只删除一个文件。

1
2
$ db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
example:$ db.myCollection.remove({name:'liu'})

删除第一个匹配的文件:如果有多个记录且要删除的只有第一条记录,那么设置remove()方法中justOne参数

文档的更新

MongoDB的 update() 和 save() 方法用于更新文档的集合。 update()方法更新现有的文档值,而替换现有的文档通过的文件中 save() 方法。

1
2
$ db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
example:$ db.myCollection.update({name:'liu'},{$set:{name:'yang'}})

提示:MongoDB默认将只更新单一的文件,来更新多个你需要设置参数置’multi’ 为true

1
example:$ db.myCollection.update({name:'liu'},{$set:{name:'yang'}},{multi:true})

初步学习,更多更详细可以参考mongodb基本操作