【MongoDB】查看文档(比较运算)
MongodDB查看集合中文档情况,使用find()方法,在前面的文章中也多次使用这个方法,通过本章节进行相对较全面的测试-【比较运算符】
1:【基本语法】
|
1 |
db.collection.find(query, projection) |
| 参数 | 类型 | 描述 |
|---|---|---|
| query | document | 可选,使用查询操作符指定查询条件 |
| projection | document | 可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。 |
2:查看集合中所有文档,之前的测试中多次使用
|
1 2 3 4 |
> db.t.find() { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > |
3:pretty()方法,美化输出
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
> db.t.find().pretty() { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > |
4:查询name等于liuneng的文档
|
1 2 3 |
> db.t.find({"name":"liuneng"}) { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } > |
5:比较运算符
通过上面的查询我们相对较容易理解,可是如果我想查询name不等于liuneng的或者age大于22的等等,这些比较运算符在mongoDB中该如何表现呢?当然关系型数据库我们都比较熟悉了,下面我们做一下对比:
| 操作符 | RDBMS | mongoDB | mongoDB例 |
|---|---|---|---|
| 不等于 | where name <> 'liuneng' | {key:{$ne:value}} | {"name":{$ne:"liuneng"}} |
| 大于 | where age > 22 | {key:{$gt:value}} | {"age":{$gt:22}} |
| 大于等于 | where age >= 22 | {key:{$gte:value}} | {"age":{$gte:22}} |
| 小于 | where age < 23 | {key:{$lt:value}} | {"age":{$lt:23}} |
| 小于等于 | where age <= 23 | {key:{$lte:value}} | {"age":{$lte:23}} |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# name 不等于liuneng > db.t.find({"name":{$ne:"liuneng"}}) { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > # age 大于 22 > db.t.find({"age":{$gt:22}}) { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > # age 大于等于 22 > db.t.find({"age":{$gte:22}}) { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > # age 小于 23 > db.t.find({"age":{$lt:23}}) { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } > # age 小于等于 23 > db.t.find({"age":{$lte:23}}) { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > # 格式化效果 > db.t.find({"age":{$lte:23}}).pretty() { "_id" : ObjectId("59827e4ec566b07b8733e77d"), "name" : "liuneng", "age" : 22, "sex" : 0 } { "_id" : ObjectId("59827e62c566b07b8733e77e"), "name" : "zhaosi", "age" : 23, "sex" : 0 } > |