sql >> Databáze >  >> NoSQL >> MongoDB

Agregace MongoDB s $lookup zahrnuje (nebo projekt) pouze některá pole, která se mají vrátit z dotazu

Abych s tím pomohl ostatním, @SiddhartAjmera má správnou odpověď, potřeboval jsem pouze přidat dvojité uvozovky pro vnořené hodnoty jako „campaign.clientid“.

Konečný kód by měl být:

db.somecollection.aggregate([
      {
        "$lookup": {
          "from": "campaigns",
          "localField": "campId",
          "foreignField": "_id",
          "as": "campaign"
        }
      },
      {
        "$unwind": "$campaign"
      },
      {
        "$lookup": {
          "from": "entities",
          "localField": "campaign.clientid",
          "foreignField": "_id",
          "as": "campaign.client"
        }
      },
      {
        "$project": {
          "_id": 1,
          "campId": 1,
          "articleId": 1,
          "campaign._id": 1,
          "campaign.clientid": 1,
          "campaign.client._id": 1,
          "campaign.client.username": 1
        }
      }
]);


  1. Jak se v Mongu dotazujete, zda není null?

  2. Meteor - collection.find() vždy vrátí všechna pole

  3. delayed_jobs vs resque vs beanstalkd?

  4. Zkompilovaný model Mongoose nelze přepsat