微信小程序云开发数据库的 SDK 提供了一些聚合操作符和集合操作符,用于更灵活地进行数据库操作。以下是一些常用的聚合操作符和集合操作符的示例:

聚合操作符

1. sum(求和)

   用法示例:
   const db = wx.cloud.database();
   const _ = db.command;

   db.collection('collectionName').where({
     // 查询条件
   }).aggregate().group({
     _id: null,
     total: $.sum('$fieldName') // 替换 fieldName 为实际字段名
   }).end().then(res => {
     console.log(res.list[0].total);
   });

2. avg(求平均值)

   用法示例:
   db.collection('collectionName').where({
     // 查询条件
   }).aggregate().group({
     _id: null,
     average: $.avg('$fieldName') // 替换 fieldName 为实际字段名
   }).end().then(res => {
     console.log(res.list[0].average);
   });

3. max(求最大值)

   用法示例:
   db.collection('collectionName').where({
     // 查询条件
   }).aggregate().group({
     _id: null,
     max: $.max('$fieldName') // 替换 fieldName 为实际字段名
   }).end().then(res => {
     console.log(res.list[0].max);
   });

4. min(求最小值)

   用法示例:
   db.collection('collectionName').where({
     // 查询条件
   }).aggregate().group({
     _id: null,
     min: $.min('$fieldName') // 替换 fieldName 为实际字段名
   }).end().then(res => {
     console.log(res.list[0].min);
   });

集合操作符

1. addToSet(添加到集合)

   用法示例:
   db.collection('collectionName').doc('documentId').update({
     data: {
       arrayField: _.addToSet('newElement')
     },
     success: res => {
       console.log(res.stats);
     }
   });

2. pop(从集合中删除元素)

   用法示例:
   db.collection('collectionName').doc('documentId').update({
     data: {
       arrayField: _.pop()
     },
     success: res => {
       console.log(res.stats);
     }
   });

3. pull(从集合中删除指定元素)

   用法示例:
   db.collection('collectionName').doc('documentId').update({
     data: {
       arrayField: _.pull('elementToRemove')
     },
     success: res => {
       console.log(res.stats);
     }
   });

以上示例中,fieldName 和 arrayField 需要替换为实际的字段名。这些操作符可以根据具体的业务需求进行灵活运用。请注意,微信小程序云开发的文档可能会有更新,建议查阅最新文档以获取详细信息。


转载请注明出处:http://www.zyzy.cn/article/detail/5965/微信小程序