一、基本概念
文档:MongoDB的核心概念。多个键及其关联的值有序地放置在一起便是文档。相当于关系数据库中的行(但比行复杂)
集合:可以被看做没有模式的表,多个文档组成集合
数据库:多个集合组成数据库
MongoDB shell:MongoDB自带一个JavaScript shell,可以从命令行与MongoDB实例交互。
_id和ObjectId生成方式:
二、插入文档
————————————————————————
D:\mongodb\bin>mongo.exe
MongoDB shell version: 2. 2. 2
connecting to: test
> db.ysq.insert({ "bar":"baz"}) /*插入文档*/
————————————————————————
MongoDB shell version: 2. 2. 2
connecting to: test
> db.ysq.insert({ "bar":"baz"}) /*插入文档*/
insert操作会给文档增加一个“_id”键(如果原来没有的话),然后将其保存到MongoDB中。
批量插入
三、删除文档
————————————————————————
> db.ysq.find()
> db.ysq.insert({
"bar":"baz1"})
> db.ysq.insert({
"bar":"baz2"})
> db.ysq.insert({
"bar":"baz3"})
> db.ysq.find()
{ "_id" : ObjectId("50ec3b197224c3c23f44e49a"),"bar" :"baz1" }
{ "_id" : ObjectId("50ec3b1c7224c3c23f44e49b"),"bar" :"baz2" }
{ "_id" : ObjectId("50ec3b1f7224c3c23f44e49c"),"bar" :"baz3" }
> db.ysq.remove({
"bar":"baz2"}) /*删除ysq集合中bar=baz2的文档*/
> db.ysq.find()
{ "_id" : ObjectId("50ec3b197224c3c23f44e49a"),"bar" :"baz1" }
{ "_id" : ObjectId("50ec3b1f7224c3c23f44e49c"),"bar" :"baz3" }
> db.ysq.remove() /*删除ysq集合中所有的文档*/
> db.ysq.find()
>
————————————————————————
>
remove操作不会删除集合本身,原有的索引也会保留,如果数据库较大,可先删除整个集合,再重建索引,这样执行会比较快
————————————————————————
> db.ysq.find()
{ "_id" : ObjectId( "50ec3daf7224c3c23f44e49d"), "bar" : "baz" }
> db.ysq.drop() /*删除集合ysq*/
true
> db.ysq.find()
>
————————————————————————
{ "_id" : ObjectId( "50ec3daf7224c3c23f44e49d"), "bar" : "baz" }
> db.ysq.drop() /*删除集合ysq*/
true
> db.ysq.find()
>
三、更新文档
文档存入数据库以后快就可以使用update方法来修改它。update有两个参数,一个是查询文档,用来找出要更新的文档,拎一个是修改器文档,描述对找到的文档做哪些更改。更新的操作是原子的。
3.1 文档替换
————————————————————————
> me = {
/*原有文档结构*/
... "name": "ysq",
... "friends": 32,
... "enemies": 2
... }
{ "name" : "ysq", "friends" : 32, "enemies" : 2 }
> db.ysq. insert(me) ;
> me1 = { /*更新后的新文档结构*/
.
... "name": "ysq",
... "friends": 32,
... "enemies": 2
... }
{ "name" : "ysq", "friends" : 32, "enemies" : 2 }
> db.ysq. insert(me) ;
> me1 = { /*更新后的新文档结构*/
.