MongoDB学习(六)之文档(document)之增删改查
一、插入文档
1)insert()方法
(1)语法:
db.COLLECTION_NAME.insert(document)
(2)示例:
①将文档存储到user数据库的col集合中:
注意:1、若col集合不存在数据库中,则会自动创建该集合并插入文档。
2、col就是集合名
②查看已插入文档:
③使用变量进行插入步骤
2)save()方法
(1)不指定_id字段的save()方法类似于insert()方法。
(2)指定_id字段的save()方法,会更新该_id的数据。
二、更新文档
1)update()方法
(1)语法
db.collection.update(
<query>,
<update>,
{
upsert:<boolean>,
multi:<boolean>,
writeConcern:<document>
}
)
1、参数说明:
①query:查询条件(类似sql update中的where后面的)。
②update:更新的对象和一些更新的操作符(如$、$set、$inc等)(类似sql update查询内set后面的内容)。
③upsert:可选项,若不存在update的记录,是否插入objNew。true为插入,false为不插入(MongoDB的默认情况)。
④multi:可选项,false,只更新找到的第一条记录(MongoDB的默认情况)
true,把按条件查出来的多条记录全部更新。
⑤writeConcern:可选项,抛出异常的级别。
(2)示例
①更新插入的数据中的name=lihao为name=lh
2)save()方法
(1)语法:
db.collection.save(
<document>,
{
writeConcern:<document>
}
)
1、参数说明:
document:文档数据。
writeConcern:可选项,抛出异常的级别。
(2)示例
①若_id存在,替换为该文档数据。
若_id不存在,插入该文档数据。
1、修改前
2、修改后
(3)更多的示例
①全部更新
db.col.update( { "year" : { $gt : 15 } } , { $inc : { "year" : 1} },false,true )
注意:1、$inc:将目标key的value加上后面的值,这里就是给year+1。
②只添加第一条
db.col.update( { "year" : { $gt : 20 } } , { $set : { "description" : "成年人"} },true,false )
注意:1、$set:若键存在,用来指定一个键并更新键值;
若键不存在并创建。
三、删除文档
1)remove()方法
(1)语法(2.6版本以后)
db.collection.remove(
<query>,
{
justOne:<boolean>,
writeConcern:<document>
}
)
1、参数说明:
①query:可选项,删除文档的条件。
②justOne:可选项,为true/1时,只删除一个文档。
③writeConcern:可选项,抛出异常的级别。
(2)示例
①仅删除符合条件的记录的一条
②删除所有符合条件的记录
四、查询文档
1)find()方法
(1)语法
db.collection.find(query,projection)
1、参数说明:
①query:可选项,查询条件(使用查询操作符)。
②projection:可选项,指定返回的键(使用投影操作符)。
注意:1、美化find()的结果(易读)
db.col.find().pretty()
2、findOne()方法,它只返回一个文档。
2)MongoDB条件语句与SQL where语句比较
操作 |
格式 |
示例 |
SQL中的where语句 |
等于 |
{<key>:<value>} |
db.col.find(“name”:”lh”).pretty() |
where name=”lh” |
小于 |
{<key>:{$lt:<value>}} |
db.col.find({“year”:{$lt:17}}).pretty() |
where year<17 |
小于或等于 |
{<key>:{$lte:<value>}} |
db.col.find({“year”:{$lte:17}}).pretty() |
where year<=17 |
大于 |
{<key>:{$gt:<value>}} |
db.col.find({“year”:{$gt:17}}).pretty() |
where year>17 |
大于或等于 |
{<key>:{$gte:<value>}} |
db.col.find({“year”:{$gte:17}}).pretty() |
where year>=17 |
不等于 |
{<key>:{$ne:<value>}} |
db.col.find({“year”:{$ne:17}}).pretty() |
where year != 17 |
3)MongoDB AND条件
(1)语法
db.col.find({key1:value1,key2:value2}).pretty()
4)MongoDB OR条件
(1)语法
db.col.find(
{
$or:[
{key1:value1},{key1:value1}
]
}
).pretty()
5)AND+OR示例