插入文档:
insert() 或 save()
> db.demo.save({name:"myName",age:18,hobby:["music","movie"]})
WriteResult({ "nInserted" : 1 })
>
查询:
find()
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName", "age" : 18, "hobby" : [ "music", "movie" ] }
>
定义为变量后插入
> info2=({name:"yourName",age:20,hobby:["drawing","run"]})
{ "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
> db.demo.insert(info2)
WriteResult({ "nInserted" : 1 })
>
更新:
update()
语法格式
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
- 参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如 inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName", "age" : 18, "hobby" : [ "music", "movie" ] }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.update({'name':"myName"},{$set:{'name':"myName1"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName1", "age" : 18, "hobby" : [ "music", "movie" ] }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
修改多条相同文档:
multi:true
> db.demo.update({'name':"myName"},{$set:{'name':"myName1"}},{multi:true})
通过传入文档替换已有文档
save()
语法格式
db.collection.save(
<document>,
{
writeConcern: <document>
}
)
- 参数说明:
- document : 文档数据。
- writeConcern :可选,抛出异常的级别。
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName1", "age" : 18, "hobby" : [ "music", "movie" ] }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.save({ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ] })
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>
> db.demo.find().pretty()
{
"_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"),
"name" : "myName2",
"age" : 20,
"hobby" : [
"music",
"movie"
]
}
{
"_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"),
"name" : "yourName",
"age" : 20,
"hobby" : [
"drawing",
"run"
]
}
>
更多实例:
相同条件只更新第一条记录:
db.demo.update( { “key” : “val” } , { $set : { “key1” : “val1”} } );
db.demo.update( { “key” : “val” } , { $set : { “key1” : “val1”} } ,false,false);
相同条件全部更新:
db.demo.update( { “key” : “val” } , { $set : { “key1” : “val1”} },false,true);
不存在新建:
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ] }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.update({"name":"hisName"},{$set:{"name":"hisName1"}},true,false)
WriteResult({
"nMatched" : 0,
"nUpserted" : 1,
"nModified" : 0,
"_id" : ObjectId("5e796a0b7b047d1d86dd360d")
})
>
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ] }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e796a0b7b047d1d86dd360d"), "name" : "hisName1" }
>
条件更新(age>10):
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ] }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e796a0b7b047d1d86dd360d"), "name" : "hisName1", "age" : "30" }
>
> db.demo.update({"age":{$gt:10}},{$set:{"job":"IT"}},true,true)
WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
>
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ], "job" : "IT" }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ], "job" : "IT" }
{ "_id" : ObjectId("5e796a0b7b047d1d86dd360d"), "name" : "hisName1", "age" : "30" }
>
删除
语法格式
db.collection.remove(
<query>,
<justOne>
)
2.6+
db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
-
参数说明:
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
- writeConcern :(可选)抛出异常的级别。
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ], "job" : "IT" }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ], "job" : "IT" }
{ "_id" : ObjectId("5e796a0b7b047d1d86dd360d"), "name" : "hisName1", "age" : "30" }
>
> db.demo.remove({"name":"hisName1"})
WriteResult({ "nRemoved" : 1 })
>
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ], "job" : "IT" }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ], "job" : "IT" }
>
相同条件删除第一条记录(经测试不管数字是几都删除第一条,待求证。。。):
> db.demo.find()
{ "_id" : ObjectId("5e788c89a3edd4aa4ff0c2bd"), "name" : "myName2", "age" : 20, "hobby" : [ "music", "movie" ], "job" : "IT" }
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ], "job" : "IT" }
{ "_id" : ObjectId("5e796e5aa3edd4aa4ff0c2bf"), "name" : "herName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e796f30a3edd4aa4ff0c2c0"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.remove({"age":{$gt:10}},3)
WriteResult({ "nRemoved" : 1 })
>
> db.demo.find()
{ "_id" : ObjectId("5e788dbba3edd4aa4ff0c2be"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ], "job" : "IT" }
{ "_id" : ObjectId("5e796e5aa3edd4aa4ff0c2bf"), "name" : "herName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e796f30a3edd4aa4ff0c2c0"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.remove({"age":{$gt:10}},2)
WriteResult({ "nRemoved" : 1 })
>
> db.demo.find()
{ "_id" : ObjectId("5e796e5aa3edd4aa4ff0c2bf"), "name" : "herName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e796f30a3edd4aa4ff0c2c0"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
官方升级删除方法:
删除单条:deleteOne({“key”:“val”}),
删除多条:deleteMany({“key”,“val”}),
删除所有:deeteMany({});
> db.demo.deleteOne({"age":{$gt:10}})
{ "acknowledged" : true, "deletedCount" : 1 }
>
> db.demo.find()
{ "_id" : ObjectId("5e796f30a3edd4aa4ff0c2c0"), "name" : "myName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e7972c7a3edd4aa4ff0c2c1"), "name" : "hisName", "age" : 20, "hobby" : [ "drawing", "run" ] }
{ "_id" : ObjectId("5e7972c9a3edd4aa4ff0c2c2"), "name" : "yourName", "age" : 20, "hobby" : [ "drawing", "run" ] }
>
> db.demo.deleteMany({})
{ "acknowledged" : true, "deletedCount" : 3 }
>
> db.demo.find()
>