收藏
回答

云开发“拼团”功能,数据查询?

我设计的拼团功能数据结构,团长(Leader)和团员(Member)都生成了独立的订单号(在同一个集合里‘groupOrder’)。

团员在下单时会关联了团长的订单(ID)。

我现在想把每个团长及团员的订单筛选出来放到一个新数组里面。

[{
      团长A: '',
      团员[{
        团员A: '',
      }, {
        团员B: '',
      }]
    }, {
      团长B: '',
      团员[{
        团员A: '',
      }, {
        团员C: '',
      }]
    }]


云函数,查询‘Leader._id’,并通过‘addFields()函数’新建了一个数组‘memberOrder’,再通过查询到的‘Leader._id’,继续查询符合条件的‘member’订单,并把查询结果push到新数组‘memberOrder’,但返回结果null

exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  const req_type = event.req_type
  switch (req_type) {
    case "Member":
      return memberCheck();
    default: {
      return
    }
  }

  function memberCheck() {
    const memberOrder = []
    return dbRes.match({
      shopID: event.shopID,
      orderType: 'Leader'
    }).addFields({
      memberOrder: memberOrder
    }).end()
    .then( res => {
      console.log(res);
      const leaderOrder = res.data
      for (let i = 0; i < leaderOrder.length; i++) {
        const orderID = leaderOrder[i]._id;
        return db.collection('groupOrder').where({
          orderID: orderID
        }).get()
        .then( res => {
          const member = res.data
          for (let j = 0; j < member.length; j++) {
            const tempObj = member[j];
            memberOrder.push(tempObj)
          }
          return res
        })
      }
      return res
    }).catch( err => {
      console.log(err);
    })
  }
}



回答关注问题邀请回答
收藏

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    08-10

    你写的什么嘛

    1、你addFields一个空数组字段,想干什么

    2、最下面有只对memberOrder赋值,而不是res.data里的memberOrder,数据自己会进到res.data里的memberOrder?

    3、多个res,你知道自己要的是哪个res吗

    说到底还是不会用Promise

    再好好学学吧

    08-10
    有用
    回复 4
    • Qiu (吉²)
      Qiu (吉²)
      08-10
      谢谢🙏
      08-10
      回复
    • Qiu (吉²)
      Qiu (吉²)
      08-10
      08-10
      回复
    • Qiu (吉²)
      Qiu (吉²)
      08-10
      现在可以查询到团长订单和对应的团员订单了,请问我该如何操作,把团员订单的数组对象插入到团长订单里啊。
      08-10
      回复
    • o0o有脾气的酸奶
      o0o有脾气的酸奶
      08-10回复Qiu (吉²)
      lookup了解一下
      08-10
      1
      回复
  • 老张
    老张
    08-10

    可能是异步的问题。

    08-10
    有用
    回复 1
    • Qiu (吉²)
      Qiu (吉²)
      08-10
      嗯嗯,我在检查一下,谢谢🙏
      08-10
      回复
登录 后发表内容
问题标签