Collection.field(projection: Object): Collection

支持端:小程序 , 云函数

指定返回结果中记录需返回的字段

参数

projection: Object

返回值

Collection

说明

方法接受一个必填对象用于指定需返回的字段,对象的各个 key 表示要返回或不要返回的字段,value 传入 true|false(或 1|-1)表示要返回还是不要返回。

如果指定的字段是数组字段,还可以用以下方法只返回数组的第一个元素:在该字段 key 后面拼接上 .$ 成为 字段.$ 的形式。

如果指定的字段是数组字段,还可以用 db.command.project.slice 方法返回数组的子数组:

方法既可以接收一个正数表示返回前 n 个元素,也可以接收一个负数表示返回后 n 个元素;还可以接收一个包含两个数字 [ skip, limit ] 的数组,如果 skip 是正数,表示跳过 skip 个元素后再返回接下来的 limit 个元素,如果 skip 是负数,表示从倒数第 skip 个元素开始,返回往后数的 limit 个元素

  • 返回数组的前 5 个元素:{ tags: db.command.project.slice(5) }
  • 返回数组的后 5 个元素:{ tags: db.command.project.slice(-5) }
  • 跳过前 5 个元素,返回接下来 10 个元素:{ tags: db.command.project.slice(5, 10) }
  • 从倒数第 5 个元素开始,返回接下来正方向数的 10 个元素:{ tags: db.command.project.slice(-5, 10) }

示例代码

返回 description, done 和 progress 三个字段:

  1. db.collection('todos').field({
  2. description: true,
  3. done: true,
  4. progress: true,
  5. // 只返回 tags 数组前 3 个元素
  6. tags: db.command.project.slice(3),
  7. })
  8. .get()
  9. .then(console.log)
  10. .catch(console.error)