find

查找集合中符合条件的所有记录。

方法定义

find(query?: object, options?: object): Promise<MongoResult>

请求参数

说明

限制单次请求最多返回文档数量为500个。

字段名

类型

必填

说明

query

Object

数据库操作时的查询条件。

options

Object

控制项。

options 参数定义:

字段名

类型

必填

说明

limit

Number

查询的文档数量限制,最大值和默认值均为500。

skip

Number

跳过的文档数量。

sort

Object

指定排序的字段,并使用 1 和 -1 来指定排序的方式。其中:

  • 1:表示升序排列。

  • -1:表示降序排列。

projection

Object

使用投影操作符指定返回的键,值设置为1的字段返回,值为0 的字段隐藏。

hint

Object

指定查询时使用的索引。

maxTimeMS

Number

执行时间(毫秒),默认值:1000,最大值:3000。

请求示例

  • users集合中查找age字段值大于18的记录,按照姓名正序排列,返回符合条件的第11到第20条记录的 name字段( _id 字段默认也返回)。

    mpserverless.db.collection('users').find( {
        age: { $gt: 18 }
    }, {
        projection: { name: 1 },
        sort: { name: 1 },
        skip: 10,
        limit: 10,
    } )
    .then(res => {})
    .catch(console.error);
  • users 集合中对所有记录按照姓名正序排列,返回符合条件的第11到第20条记录的name字段(_id 字段默认也返回)。

    mpserverless.db.collection('users').find( {}, {
        projection: { name: 1 },
        sort: { name: 1 },
        skip: 10,
        limit: 10,
    })
    .then(res => {})
    .catch(console.error);
    
  • users集合中查询所有姓王的用户,使用正则操作符 regex

    mpserverless.db.collection('users').find( {
       name: { $regex: '王' }
    })
    .then(res => {})
    .catch(console.error);

  • users集合中查询年龄大于18或者姓名是李四的用户,使用逻辑或or

    mpserverless.db.collection('users').find( { 
        $or: [
                   { name: "李四" },
                   { age: { $gt: 18 } }
        ] 
    } )
    .then(res => {})
    .catch(console.error);

结果示例

请求成功:

{
    "affectedDocs": 2,
    "result": [
                    {
                        "_id": "630f2bc8f5cf3ad9f4345efc",
                        "name": "张三",
                        "age": 18
                    },
                    {
                        "_id": "630f2bc8f5cf3ad9f4345efd",
                        "name": "李四",
                        "age": 19
                    }
                ],
    "success": true
}