MongoDB查询文档之find函数

MongoDB数据查询使用find函数,其功能与SQL中的select函数相同,可提供与关系型数据库类似的许多功能,包含映射、排序等。

find函数语法
 
   
>db.COLLECTION_NAME.find(query,fields,limit,skip)
find() 方法以非结构化的方式来显示所有文档。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
 
    
>db.COLLECTION_NAME.find().pretty()
pretty() 方法以格式化的方式来显示所有文档。
参数说明:
  • query:指明查询条件,相当于SQL中的where语句
  • fields:用于字段映射,指定是否返回该字段,0代表不返回,1代表返回
  • limit:限制查询结果集的文档数量,指定查询返回结果数量的上限
  • skip:跳过一定数据量的结果,设置第一条返回文档的偏移量
注意事项:
  • MongoDB不支持多集合间的连接查询,find函数一次查询只能针对一个集合
  • find参数为空或者查询条件为空文档时,会返回集合中的所有文档
  • 除了将limit和skip作为find函数的参数外,还可以单独使用limit和skip函数来修饰查询结果
  • 返回的查询结果集默认情况下是无序的,如果需要对结果进行排序,可以使用sort函数
  • db.collection.findOne()只会返回第一条数据
  • 当查询的集合文档数量很大时,为了加快数据的查询速度可以创建索引
  • 除了使用find函数实现基本查询外,MongoDB还提供了聚合框架,用于复杂查询

find函数实例
编写js脚本
 
     
// 连接数据库
var db = connect("localhost:27017/test");
// 得到待操作的数据库
//var db = dbService.getSiblingDB("test");
// 如果col集合存在则删除
db.col.drop();
//创建bulk对象用于批量插入
var bulk = db.col.initializeUnorderedBulkOp();
 
// 测试数据
var doc1 = {
name:"joe",
age:20
}
bulk.insert(doc1);
 
var doc2 = {
name:"joe",
age:31
}
bulk.insert(doc2);
 
var doc3 = {
name:"jack",
age:21
}
bulk.insert(doc3);
 
var doc4 = {
name:"John",
age:null
}
bulk.insert(doc4);
 
//执行插入操作
bulk.execute();
 
print("========find - 基本使用=======");
/*
db.集合名.find( query , fields , limit , skip)
*/
var cursor = db.col.find(
{}, //查询条件
{ _id:0,age:1}, //字段映射
2, //返回结果条数
1)
.sort({age:1}); //跳过文档条数 结果按照年龄升序排列
printjson(cursor.toArray());
 
print("====下面使用方法,效果一样===");
var cursor = db.col.find(
{}, //查询条件
{ _id:0,age:1} //字段映射
).limit(2).skip(1).sort({age:1})
printjson(cursor.toArray())
执行脚本  mongo --quiet find.js
 
   
========find 基本使用=======
[ { "age" : 20 }, { "age" : 21 } ]
====下面使用方法,效果一样===
[ { "age" : 20 }, { "age" : 21 } ]

猜你喜欢

转载自blog.csdn.net/u022812849/article/details/51303997
今日推荐