当前位置:Gxlcms > 数据库问题 > [MongoDB]入门笔记

[MongoDB]入门笔记

时间:2021-07-01 10:21:17 帮助过:21人阅读

db.student.insert({name: joyjoe, age: 20, sex: male})
db.student.insert({name: lucy, age: 25, sex: female})
db.student.insert({name: anna, age: 18, sex: female})
// anna同学的年龄登记错了需要修改
db.student.update({name: anna}, {$set: {age: 20} })
// 把anna同学的登记信息修改后只留下了年龄
db.student.update({name: anna}, {age: 20})

update()方法的第三个参数用来指明当查找的数据不存在时是否会自动插入这条新数据。默认false不插入

update()方法的第四个参数用来指明是否把查找出来的所有数据全部进行更新。默认false只更新第一条数据

4. 数据删除

remove()  默认删除所有满足条件的数据

所以不传入参数是会系统报错的

设置第二个参数justOnly为true可以只删除第一条数据

 

四、索引

查询集合中所有索引 db.[collection].getIndexes()

给集合添加新的索引(仅对于空集合)

db.[collection].ensureIndex() 参数也是JSON对象,键表明索引字段,值表明排序方向。

db.[collection].createIndex() 创建索引 (推荐)

索引有很多,分别为: _id索引

1. _id索引(集合默认索引)

2. 单键索引(需要手动创建) 为基本数据类型的数据创建索引

3. 多键索引   为数组中的每个元素添加索引

4. 复合索引   为多个字段值创建索引,可以支持匹配多个键的查询

5. 过期索引   一段时间过后就会过期的索引,同时相应数据也会删除。适用于日志记录和用户登录信息存储等数据

db.createIndex( { }, { expireAfterSeconds: 10 })  (单位 秒)

存储在过期索引中的值必须是指定的时间类型,如果指定了数组,则按照最小值进行判断删除。同时不能是复合索引,删除时间是不精确的。

6. 全文索引

7. 地理位置索引 

五、权限认证

在 mongo.config文件中开启权限认证,在文件中进行配置

auth = true

重启服务后,在log文件中可以找到

authorization: "enabled"

此时还没有创建用户,依然可以匿名登陆。

1. 如何创建用户

createUser() 传入JSON对象

{

  user: "<name>",

  pwd: "<cleartext password>",

  customData: { <any information>},

  roles: [{ role: "<role>", db: ["<database>"...] }...]

}

 

role: read, readWrite, dbAdmin, dbOwner, userAdmin

[MongoDB]入门笔记

标签:执行命令   data   mon   输出   top   bst   base   tar   最新   

人气教程排行