find();
{ "_id" :ObjectId("54d9c3e86638c1af0d2b1204"), "name" :"c2", "cn" : 89 }
{ "_id" :ObjectId("54d9c3896638c1af0d2b1203"), "name" :"zhangsan", "cn" : 89 }
d. MongoDB的更新除了set操作符,还有其他的操作符,关于它们的功能就不做详细列出,下面列表会其他的操作符做简单描述:
| 序号 |
类型 |
描述 |
| 1 |
$inc |
用法:{$inc:{field:value}} 作用:对一个数字字段的某个field增加value 示例:db.score.update({"cn":{$gt:80}},{$inc:{"cn":8}},{multi:true}) |
| 2 |
$unset |
用法:{$unset:{field:1}} 作用:删除某个字段field |
| 3 |
$push |
用法:{$push:{field:value}} 作用:把value追加到field里。注:field只能是数组类型,如果field不存在,会自动插入一个数组类型 |
| 4 |
$pushAll |
用法:{$pushAll:{field:value_array}} 作用:用法同$push一样,只是$pushAll可以一次追加多个值到一个数组字段内。 |
| 5 |
$addToSet |
用法:{$addToSet:{field:value}} 作用:加一个值到数组内,而且只有当这个值在数组中不存在时才增加。 |
| 6 |
$pop |
用法:删除数组内第一个值:{$pop:{field:-1}}、删除数组内最后一个值:{$pop:{field:1}} 作用:用于删除数组内的一个值 |
| 7 |
$pull |
用法:{$pull:{field:_value}} 作用:从数组field内删除一个等于_value的值 |
| 8 |
$pullAll |
用法:{$pullAll:value_array} 作用:用法同$pull一样,可以一次性删除数组内的多个值。 |
| 9 |
$rename |
用法:{$rename:{old_field_name:new_field_name}} 作用:对字段进行重命名 |
4.4 MongoDB 查询文档
(1)find() 方法
要从MongoDB 查询集合数据使用MongoDB 的 find() 方法,还存在一个findOne()方法,它是返回一个文件。
(2)语法
基本的find()方法语法如下:db.COLLECTION_NAME.find()。此方法将在非结构化的方式显示所有的文件,要显示在一个格式化的方式,在后面跟上pretty() 方法。
(3)示例
> db.web_info.find().pretty()
{ "_id" :ObjectId("54d82d94dd625e55ab00b9b2"), "address" :"www.hth.tv" }
{
"_id": ObjectId("54d87cdfebde50baebb6c4ca"),
"city": "西安",
"address": "www.hth.tv"
}
{
"_id": ObjectId("54d87cdfebde50baebb6c4c9"),
"name": "好童话",
"des": "这是一个o2o的vr旅游平台"
}
(4)RDBMS Where子句和MongoDB等同语句,要查询文件的一些条件的基础上,比较如下:
| 操作 |
语法 |
例子 |
RDBMS 等同 |
| Equality |
{:} |
db.score.find({"cn":88}).pretty() |
where cn = 88 |
| Less Than |
{:{$lt:}} |
db.score.find({"num":{$lt:50}}).pretty() |
where num < 50 |
| Less Than Equals |
{:{$lte:}} |
db.score.find({"num":{$lte:50}}).pretty() |
where num <= 50 |
| Greater Than |
{:{$gt:}} |
db.score.find({"num":{$gt:50}}).pretty() |
where num > 50 |
| Greater Than Equals |
{:{$gte:}} |
db.score.find({"num":{$gte:50}}).pretty() |
where num >= 50 |
| Not Equals |
{:{$ne:}} |
db.score.find({"num":{$ne:50}}).pretty() |
where num != 50 |
(5)AND与OR在MongoDB中用法
a. MongoDB的与操作
在 find() 方法,如果通过多个键分离',',本语法如下所示:db.score.find({key1:value1, key2:value2}).pretty()
b.MongoDB的或操作
MongoDB的或操作查询,需要使用$or关键字。OR 基本语法如下所示:
>db. score.find(
{
$or: [
{key1: value1}, {key2:value2}
]
}
).pretty()
c.MongoDB的与和或进行组合查询 示例
> db.web_info.find({$and:[{"address": "www.hth.tv"},{$or:[{"name" : "好童话"},{"city" : "西安"}]}]}).pretty()
{
"_id": ObjectId("54d87cdfebde50baebb6c4ca"),
"city": "西安",
"address": "www.hth.tv"
}