如果未找到匹配项,则mongoDB lookup命令将返回所有集合

时间:2020-09-20 16:04:07

标签: node.js mongodb express mongoose

我有两个名为 Brand.js Item.js 的模型 该品牌已链接到这样的商品

Item.js

brandId: Number,
    size: String,
    description: String,

当我运行此聚合时

 let data = await Item.aggregate([
      {$match:{}},

      {
        $lookup: {
          from: "brands",
          localField: "brandId",
          foreignField: "id",
          as: "brand",
        },
      },
      
    
 
     
    ]);

如果有品牌,它将返回相关品牌。如果brandIdnull。它将返回品牌集合中的所有文档。如果brandIdnull,它将返回一个空数组。为什么会发生这种情况?

这用作右外部连接。我想将此作为左外部联接运行。

1 个答案:

答案 0 :(得分:0)

您可以像这样def set_background(image): ctypes.windll.user32.SystemParametersInfoW(20, 0, image , 0) def set_wall(message): img = Image.new('RGB', auto.size(), color = (66, 70, 82)) fnt = ImageFont.truetype('C:\\Windows\\Fonts\\consolab.ttf', 40) d = ImageDraw.Draw(img) d.text((250, 330), message, font=fnt, fill=(171, 220, 255)) wall_path = 'E:\\pranil\\python\\jee_wallpaper.png' img.save(wall_path) set_background(wall_path) while True: if datetime.today().second == 0: message = calculate_rem_time() set_wall(message) 在Item.js中添加对品牌的引用 然后您的查询将是

brandId: { type: Number, ref: 'Brand' }

Mongoose Populate