Find函数
MongoDB数据查询使用find函数,其功能与sql中的select函数相同,可提供与关系型数据库类似的许多功能,包括映射、排序等。
db.query_test.find({},{_id:0,age:1},2,1).sort(age:1);
db.query_test.find({},{_id:0,age:1}).limit(2).skip(1).sort({age:1})
查询操作符介绍
db.query_test.find({age:{$eq:20}})//age等于20
db.query_test.find({age:20})//也可以写成 age:20
db.query_test.find({age:{$in:[20,21]}})//age==20 或age==21
db.query_test.find({age:{$nin:[20,21]}})
db.query_test.find({$and:[{$or:[{age:19},{age:21}]},$or:[{name:”joe”},{name:”jack”}]]})
db.query_test.find({$nor:[{name:”joe”},{name:”jack”}]})
db.query_test.find({age:{$not:{$gt:22,$lte30}}})
db.query_test.find({age:{$exists:true}})
内嵌文档与数组查询
查询整个内嵌文档 示例:
Var doc1={“name”:”xiaoming”,”age”:20,”address”:{“province”:”guangdong”,”city”:”shenzhen”}}
Var doc2={“name”:”xiaoming”,”age”:20,”address”:{ ”city”:”shenzhen”,“province”:”guangdong” }}
db.query_test.find({“address”:{“province”:”guangdong”}})//address是内嵌文档类型,查询结果为空
db.query_test.find({“address”:{“province”:”guangdong”,”city”:”shenzhen”}})//查询结果为 doc1可见查询整个内嵌文档,需要顺序,值都匹配
查询文档的某个字段 示例:
db.query_test.find({“address.city”:{ ”shenzhen”}}) 返回:doc1 doc2
var doc1={_id:5,name:”xiaoli”,age:20,scores:[95,98,99]}
var doc2={_id:6,name:”xiaoqiang”,age:22,scores:[95,99]}
var doc3={_id:7,name:”xiaoming”,item:22,scores:[99,95,98]}
整个数组查询
db.query_array.find({scores:[95,98,99]})
数组元素(查询某一个数据元素)
db.query_array.find({scores:95})
db.query_array.find({“scores.0”:95})//查询数组中第一个元素 分数是95的文档
db.query_array.find({scores:{$all:[99,98]}})//查询条件顺序 和数组中顺序可以不同
db.query_array.find({scores:{$atelemMch:{$gt:95,$lt:99}}})
db.query_array.find(scores:{$gt:95,$lt:99})
db.query_array.find({},{scores:{$elemMatch:{$gt:95,$lt:99}}})
db.query_array.find({scores:{$size:2}})
db.query_array.find({},{scores:{$slice:[1,2]}})
db.query_array.find({scores:{$gt:94},{“scores.$”:1}})
var doc1={_id:1,name:”xiaoli”,age:20,scores:[{课程:”语文”,成绩:90},{课程:”数学”,成绩:95}]}
var doc2={_id:1,name:”xiaoqiang”,age:22,scores:[{课程:”语文”,成绩:92},{课程:”英语”,成绩:90}]}
db.array_embedded.find({‘scores.成绩’:90})
db.array_embedded.find({‘scores.1.成绩’:90})
db.array_embeddeb.find(scores:{$elemMactch:{“课程”:”语文”,”成绩”:90}})