2019独角兽企业重金招聘Python工程师标准>>>
这几天学习了下MongoDB。在这边分享下自己的学习经历。
首先我们需要了解下什么是MongoDB。在这套用下官方回答。
MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
NoSQL就不多说了,这种百度、google都可以查到。
MongoDB中包含了一些概念,database(数据库),collection(数据库表/集合),document(数据记录行/文档),field(数据字段/域),index(索引),primary key(主键,MongoDB自动将_id字段设置为主键)
启动连接mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]。
username:password@这个是账号密码,可选,也就是说可以不设置账号密码(测试数据库可以这样做,但是别傻傻的在release环境也这么搞)
host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
portX 可选的指定端口,如果不填,默认为27017
/database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开
举栗说明:mongodb://localhost:27017/jk-dev
关于options比较多,详细的可以自己查下官方文档
这样我们就连接上MongoDB,接下来我们要进行增删改查。
use DATABASE_NAME 如果数据库不存在,则创建数据库,否则切换到指定数据库。
show dbs查看所有数据库。
use runoob这样我们创建一个名字为runoob的数据库
db.runoob.insert({"name":"菜鸟教程"}) 我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。
db.dropDatabase() 删除数据库
db.createCollection(name, options) 创建集合
db.createCollection("col", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
db.col.drop() 删除集合
db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库',by: '菜鸟教程',url: 'http://www.runoob.com',tags: ['mongodb', 'database', 'NoSQL'], likes: 100}) 创建文档
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) 更新文档
db.col.remove({'title':'MongoDB 教程'}) 删除文档
db.col.find().pretty() 查询文档
db.col.find({"by":"菜鸟教程", "title":"MongoDB 教程"}).pretty() 按条件查询
db.collection.find(query, {title: 1, by: 1}) // inclusion模式 指定返回的键,不返回其他键
db.collection.find(query, {title: 0, by: 0}) // exclusion模式 指定不返回的键,返回其他键
db.collection.find(query, {_id:0, title: 1, by: 1}) // 只能全1或全0,除了在inclusion模式时可以指定_id为0
增删改查就到这里了。