MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb - corrispondenza regolare delle chiavi per i documenti secondari

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).