连接数据库
连接语法
mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
- mongodb:// 这是固定的格式,必须要指定。
- username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库 。
- host1 必须的指定至少一个host,host1是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
- portX 可选的指定端口,如果不填,默认为27017 。
- /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
- ?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开。
创建数据库
如果数据库不存在,则创建数据库,否则切换到指定数据库。
> use foo
switched to db foo
删除数据库
MongoDB使用db.dropDatabase()方法删除数据库。
> db.dropDatabase()
{ "dropped" : "foo", "ok" : 1 }
插入
MongoDB使用insert()或者save()方法向集合中插入文档。
> db.col.insert({name:'zuoxiaopang',age:23,des:'死胖子!'})
WriteResult({ "nInserted" : 1 })
col 是集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。
> db.col.save({name:'zuoxiaopangpang',age:23,des:'死胖子!'})
WriteResult({ "nInserted" : 1 })
save()方法不指定_id字段会插入文档,否则更新指定文档。
> db.col.find()
{ "_id" : ObjectId("5960b166909d0fda64ca6786"), "name" : "zuoxiaopang", "age" : 23, "des" : "死胖子!" }
{ "_id" : ObjectId("5960b26c909d0fda64ca6787"), "name" : "zuoxiaopangpang", "age" : 23, "des" : "死胖子!" }
使用find()方法查看插入结果。
修改
MongoDB使用update()和save()更新集合中的文档。
使用update()方法更新文档。
> db.col.update({name:'zuoxiaopang'},{$set:{des:'好帅的死胖子!'}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.col.find()
{ "_id" : ObjectId("5960b166909d0fda64ca6786"), "name" : "zuoxiaopang", "age" : 23, "des" : "好帅的死胖子!" }
{ "_id" : ObjectId("5960b26c909d0fda64ca6787"), "name" : "zuoxiaopangpang", "age" : 23, "des" : "死胖子!" }
使用save()更新文档,save()方法要指定_id字段。
> db.col.save({ "_id" : ObjectId("5960b26c909d0fda64ca6787"), "name" : "zuoxiaopangpang", "age" : 23, "des" : "好帅帅死"胖子!" })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.col.find()
{ "_id" : ObjectId("5960b166909d0fda64ca6786"), "name" : "zuoxiaopang", "age" : 23, "des" : "好帅的死胖子!" }
{ "_id" : ObjectId("5960b26c909d0fda64ca6787"), "name" : "zuoxiaopangpang", "age" : 23, "des" : "好帅帅死胖子!" }
删除
MongoDB使用remove()方法来移除集合中的文档。
> db.col.remove({name:'zuoxiaopang'})
WriteResult({ "nRemoved" : 1 })
> db.col.find()
{ "_id" : ObjectId("5960b26c909d0fda64ca6787"), "name" : "zuoxiaopangpang", "age" : 23, "des" : "好帅帅死胖子!" }
查询
MongoDB使用find()方法查询集合中的文档。
> db.col.find({"name":"zuoxiaopangpang"})
{ "_id" : ObjectId("5960b26c909d0fda64ca6787"), "name" : "zuoxiaopangpang", "age" : 23, "des" : "好帅帅死胖子!" }