Mongodb 学习笔记(一)
mongodb 是一款开源、跨平台、分布式,具有大数据处理能力的文档存储数据库。在 2007 年由 mongodb 软件公司开发完成,并实现全部代码源发展。目 前,该文档数据库被国内外众多知名网因所采纳,用于提高数据访问的处理速度 和大数据存储问题。
基本操作命令 :
show dbs : 显示所有数据库(空数据库不会显示)。
use dbname : 切换至 数据库 dbname。
db.stats() 显示 数据库状态
db.dropdatabase() 删除当前数据库。
db. getcollectionnames () 查看当前数据库下的所有集合的名称
show roles 查看当前数据库的用户角色权限及用户名/密码信息
增删改查:
插入:
db.student.insert({"name":"jason","age":20}) student 为集合名称,如果没有该集合,会自动创建。
db.student.insert([{"name":"dalie","age":30},{"name":"sun","sex":"male"}]) 插入多条记录 。 同一个集合中的文档,key 不用保持一致。
document = {"name":"biao","age":12}
db.student.insert(document); 也可以用声明变量的方式 将文档插入集合中
db.student.insert([{"name":"wang","age":11},{"name":"goudan","age":1}],{ordered:true}) 顺序插入 ordered为true时,如存在主键冲突的数据,会导致全部插入失败,false时,除出错记录外,其他记录正常插入。
查询:
db.student.find() 列出该集合内所有文档。
db.student.find({"name":"jason"}) 括号内 可以填写 匹配条件 类似于 sql 中where
db.student.fingone() db.student.findone({"name":"jason"}) 列出集合内符合条件的第一条文档
db.student.find().pretty() 将结果 以优美的形式展示。
db.student.find({},{name:1,age:1,_id:0}).pretty() 可以设置要查询的key ,1显示,0不显示。
db.student.find().limit(2) 返回前两条文档
db.student.find().skip(2) 跳过前两条文档,显示 之后的所有文档。
db.student.find().skip(2).limit(1) 显示第三条文档。
db.student.find({name:{$in:["mike","jason"]}}) $in 实现 范围查询。$in 用于不同文档指定同一个 key 进行或条件匹配, $or 可以指定多个 key 或条件匹配。
db.student.find({$or:[{name:"jason"},{age:12}]})
更新:
db.student.update({name:"jason"},{$set:{age1:12}})
$set 更新要修改的字段 $unset 删除该字段 $rename 更改字段名 $inc 修改数值做加法运算。
db.collection.updateone() 。与 update()唯一的 区别是命令语法里少了 一个 multi: <boolean>选项, 也就是 updateone()只适用于符合条件的一条文档的修改任务。
db.collection.updatemany() 。与 update()唯一的区别是命令语法里少了 一个 multi: <boolean>选项, 也就是 updatemany()只适用于符合条件的多条文档的修改任务。
db.collection.replaceone() 。与 update()的区别有两处, 一个没有 multi: <boolean> 选项;另外一个在第二个参数 cupdate 的<update>)里不能有更新操作符。
删除:
db.student.remove("name":"jason") 删除姓名为jason的文档。
db.student.remove({}) 删除集合内所有文档,但如果要删除整个集合 db.student.drop() 效率更高,它会直接删掉集合及索引。
推荐阅读