收藏
回答

小程序开发 求两个表中不同的地方lookup()?

表A[{id:1,name:张三,shitang:食堂一,shuliang:10 },{id:2,name:李四,shitang:食堂二,shuliang:20 },{id:3,name:王五,shitang:食堂一,shuliang:30 }]

表B[{id:1,name:张三,shitang:食堂一,shuliang:10,heji:2 },{id:2,name:李四,shitang:食堂二,shuliang:20,heji:3 }]

表B是通过表A而生成的,想要得到B表在A表中没有的id:3,name:王五,shitang:食堂一

两个表的关联字段为id,name,shitang。

就是当B表中如果有id,name,shitang这三个同时在表A中有的,就不要了。要那些不同的数据。

相当于数组A[1,2,3,4,5],B[1,2,3] 要得到4,5

想不出办法了,有大神帮忙下吗?


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

2 个回答

  • Mr.Zhao
    Mr.Zhao
    2022-04-26
    db.collection('A').aggregate()
    .lookup({
    from: 'B',
    localField: 'id',
    foreignField: 'id',
    as: 'list',
    })
    .addFields({
    size: $.size('$list')
    })
    .match({
    size: 0
    })
    .end()
    
    2022-04-26
    有用 1
    回复 2
    • 轻风
      轻风
      2022-04-26
      还是你最好,谢谢
      2022-04-26
      回复
    • 轻风
      轻风
      2022-09-07
      你好可以再帮我回答下,下面的疑问吗
      2022-09-07
      回复
  • 轻风
    轻风
    2022-09-07
    exports.main = async (event, context) => {
        return await db.collection('user').aggregate()
        .lookup({
            from: 'pingjia',
            localField: 'username',
            foreignField: 'username',
            as'list',
            })
        .addFields({
                size: $.size('$list')
                })
        .match({
            shitang : '1号食堂',
            size: 0
            })
        .limit(1000)    
        .end() 
    user 用户表,带有shitang 字段,带有username字段
    pingjia 评价表,带有shitang 字段,username字段,月份字段riqi,
    用户每个月都可以对食堂提出一次评价,用以上的方面只能得到该食堂在所有月份中得到未进行评价的用户,如何对pingjia 评价表进行条件限制,比如查询8月份谁未评价。
    
    2022-09-07
    有用
    回复 1
    • 轻风
      轻风
      2022-09-07
      pingjia表中的riqi,有6月份,7月份,8月份等等
      2022-09-07
      回复
登录 后发表内容