Collection.field / Query.field / Document.field

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

方法签名如下:

function field(definition: object): Collection | Query | Document

方法接受一个必填对象用于指定需返回的字段,对象的各个 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 三个字段:

const db = wx.cloud.database()
db.collection('todos').field({
  description: true,
  done: true,
  progress: true,
  // 只返回 tags 数组前 3 个元素
  tags: db.command.project.slice(3),
})
  .get()
  .then(console.log)
  .catch(console.error)