Using value as key

So I’m trying to aggregate two documents matched on an id and based on the value of the first.

Document 1

{
“id”:3
“Whats for dinner”: “dinner”,
“What is for dinner tonight”: “dinner”,
“Whats for lunch”:“lunch”
}

Document 2

{
“Id”:3
“dinner” : “We are having roast!”,
“lunch” : “We are having sandwiches”
}

I’d like to start by matching the id and test if the question exists in doc1.
then return the question from doc1 and the answer from doc 2 . Like

{“Whats for dinner”:“We are having roast!”}

I’ve tried:

{ “$match”: { “id”: 3, “Whats for dinner”:{“$exists”:True}} }

{
    "$lookup": {
        "from": "doc 2", 
        "localField": "id", 
        "foreignField": "id", 
        "as": "qa"
    }
}

But from here I can’t figure it out

It might be simple! but I’m a new to this, and just can’t get it to work!?

Do not use values as field names. These are bad field names:

The sample data you supplied is inconsistent with what you want as an answer. The value/key dinner appears twice in d1.

Enjoy some reading Building with Patterns: The Attribute Pattern | MongoDB Blog.

Do not name your collection doc 2. But you probably don’t. It looks like you redacted it. May be it is really called answers. And doc 1 would make more sense if it was called questions.