sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan jag kombinera flera samlingar till en samling med $lookup mongodb eller nodejs mongodb?

Du bör använda $skip och $limit för att undvika detta fel. varför får man det här felet? du måste läsa @Alex kommentarlänk.

db.products.aggregate([ 
    {$skip:0},{$limit: 1000},
    {$lookup:{from:"productgroups", localField:"productgroupid", foreignField:"productgroupid", as:"group"}},
    {$lookup:{from:"category", localField:"categoryid", foreignField:"categoryid", as:"category"}},
    {$lookup:{from:"divisions", localField:"divisionid", foreignField:"divisionid", as:"division"}},
    {$project: {productpoint:1,productname:1,productcode:1,productid:1,group: { $arrayElemAt: [ "$group", 0 ]},
                category: { $arrayElemAt: [ "$category", 0 ]}, division: { $arrayElemAt: [ "$division", 0 ]} }} 
  ]);

{$skip:0},{$limit: 1000} // för initial och sedan för nästa gång ska hoppa över:1000, limit:1000 och så vidare. du kan få det från begäran eller genom att använda loop eller när du implementerar.




  1. Skapa nycklar i bulk i Redis - ServiceStack C#

  2. Mongodb snabbkorrigering KB2731284

  3. MongoDB Ruby Driver 2.5.x problem med skiftlägeskänslighet med värdnamn på replikuppsättningar

  4. MongoDB - Aggregation - För att få unika föremål i array