Non è possibile eseguire query sulle chiavi del documento in questo modo. Puoi cercare corrispondenze esatte usando $exists
, ma non riesci a trovare nomi di chiavi che corrispondano a uno schema.
Presumo (forse in modo errato) che stai cercando di trovare documenti che hanno un sottodocumento URL e che non tutti i documenti lo avranno? Perché non spingere le informazioni sul tipo verso il basso di un livello, qualcosa come:
{
payload: {
type: "url",
url: "Facebook.com",
...
}
}
Quindi potresti interrogare come:
db.foo.find({"payload.type": "url", ...})
Sarei anche negligente se non notassi che non dovresti usare i punti (.
) sono i nomi delle chiavi in MongoDB. In alcuni casi è possibile creare documenti come questo, ma causerà grande confusione quando si tenta di eseguire query su documenti incorporati (dove Mongo usa il punto come "separatore di percorso", per così dire).