1. 基本查询:
构造查询数据。
> db.test.findOne()
{
"_id" : ObjectId("4fd58ecbb9ac507e96276f1a"),
"name" : "stephen",
"age" : 35,
"genda" : "male",
"email" : "stephen@test.com"
}
多条件查询。下面的示例等同于SQL语句的where name = "stephen" and age = 35
> db.test.find({"name":"stephen","age":35})
{ "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35, "genda" : "male", "email" : "stephen@test.com" }
返回指定的文档键值对。下面的示例将只是返回name和age键值对。
注:find里不是直接填写键值对,而是有一个大括号,之后写键值对。 1表示显示,默认为 0
> db.test.find({}, {"name":1,"age":1})
{ "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35 }
指定不返回的文档键值对。下面的示例将返回除name之外的所有键值对。
> db.test.find({}, {"name":0})
{ "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "age" : 35, "genda" : "male", "email" : "stephen@hotmail.com" }
2. 查询条件:
MongoDB提供了一组比较操作符:
$gt: 大于
$gte: 大于等于
$lt: 小于
$lte: 小于等于
$ne: 不等于
下面的示例返回符合条件age >= 18 && age <= 40的文档。
> db.test.find({"age":{"$gte":18, "$lte":40}})
{ "_id" : ObjectId("4fd58ecbb9ac507e96276f1a"), "name" : "stephen", "age" : 35,"genda" : "male", "email" : "stephen@test.com" }
注:在查询对象有对象属性时(即对象前包含对象类型,如:ObjectId("4fd58ecbb9ac507e96276f1a")),需要查询对应的查询格式,例如 ISODate,在比较时需比较Date类型(字符串),示例如下:
db.getCollection('Test').find({"mac" : "CAE72E05FA66", "sampleTime" : {$lte: new Date('2017/07/24')} })
在MongoDB中存放数据如下:
"sampleTime" : ISODate("2017-07-23T15:50:35.000Z"),
还有其他查询暂时未用到,可以参考下面的文章:
http://blog.youkuaiyun.com/cw2004100021124/article/details/50150425