更新,创建,删除mongodb文档(原创)

1,1.插入并保存文档:

db.person.insert("bar":"baz");

2.1删除文档:

db.user.remove();--这条语句会删除所有的文档 ,但是不包括集合,原有的索引也会保留。

2.2直接删除集合:

db.drop_collection("user");--这个不但会删除集合,连索引也会一并删除。

3.1文档替换:

3.2使用修改器:

$inc修改器:db.analytics.update({"url":"www.example.com"},{"inc":{"page":1}})

$set修改器:用来指定一个键的值,如果不存在就创建。

db.user.update({"user":"tang"},{"$set":{"favourite book":"war and peace"}})--$set还可以修改键的数据类型。

db.user.update({"user":"tangke",{"favourite book":["war and peace","because of you"]}})--修改键的数据类型实例。

$unset删除一个键。

数据修改器:

$push:向已有的数据末尾加入数据。

$addToSet:避免重复添加数据。并且将$addToSet和$each可以添加多个值。

$pop:{$pop:{key:1}}从数组末尾删除一个数据。

> db.user.insert({"name":"tangke","comment":["god ","better","best"],"age":24})。--插入数据。

{ "_id" : ObjectId("4f542cc1eccef5450cf5f3c5"), "age" : 24, "comment" : [ "god "
, "better" ], "name" : "tangke" }--使用$pop后的情况。

$upsert:如果没有文档符合条件,就新创建一条数据。

{ "_id" : ObjectId("4f542cc1eccef5450cf5f3c5"), "age" : 24, "comment" : [ "god "
, "better" ], "name" : "tangke" }        --现在没有name=liyi的数据,现在使用upsert来更新。

> db.user.update({"name":"liyi"},{"name":"liyi"},true)
> db.user.find()
{ "_id" : ObjectId("4f542cc1eccef5450cf5f3c5"), "age" : 24, "comment" : [ "god "
, "better" ], "name" : "tangke" }
{ "_id" : ObjectId("4f542e8070322560d367bbd2"), "name" : "liyi" }--现在存在这个文档了,第三个参数为true,表示使用upsert功能。

3.3一次更新多个文档:(更新只能对一个符合要求的文档进行更新,如果要更新多个文档的话, 请看下面)

> db.user.find({"name":"tangke"})
{ "_id" : ObjectId("4f542cc1eccef5450cf5f3c5"), "age" : 24, "comment" : [ "god "
, "better" ], "name" : "tangke" }
{ "_id" : ObjectId("4f542f2beccef5450cf5f3c6"), "name" : "tangke", "age" : 25 }     --现在集合中有两条name=tangke的文档。现在来使用多个更新。

> db.user.update({"name":"tangke"},{"$inc":{"age":1}},false,true)
> db.user.find({"name":"tangke"})
{ "_id" : ObjectId("4f542cc1eccef5450cf5f3c5"), "age" : 25, "comment" : [ "god "
, "better" ], "name" : "tangke" }
{ "_id" : ObjectId("4f542f2beccef5450cf5f3c6"), "name" : "tangke", "age" : 26 }     --现在集合中的name=tangke的文档都被更新了,update语句的第四个参数表示进行多个文档更新。
3.4返回更新的文档:findAndModify.



posted @ 2012-03-05 11:17  agile_work  阅读(602)  评论(0编辑  收藏  举报