2017-09-22 2 views
0

Donc, je cherche un moyen de vérifier si un e-mail est pris dans ma base de données.Écrire une requête pour trouver une entrée dans un objet imbriqué

Les données sont imbriquées et l'objet ressemble à ceci:

{ 
 
    "_id": { 
 
    "$oid": "59c50b9190c4fe1c54c8ca85" 
 
    }, 
 
    "scriptData": { 
 
    "email": "[email protected]", 
 
    "age": "10", 
 
    "lang": "undefined", 
 
    "avatar": "undefined" 
 
    } 
 
}

J'utilise findOne() pour trouver les données dans une collection et le problème est que je ne suis pas savoir comment écrire la requête correctement.

Je veux rechercher la valeur email ici. J'ai essayé une requête comme:

{ "email": "[email protected]"} trouvé quoi que ce soit

{ "scriptData": { "email": "[email protected]"}} rien de trop

{"scriptData": {"email": "[email protected]", "age": "10", "lang": "undefined", "lang": "undefined"}} Je l'ai trouvé!

J'ai donc dû écrire toutes les données imbriquées afin de le trouver. Puisque les utilisateurs peuvent contourner le registre en changeant un champ comme l'âge, je ne peux pas utiliser cette requête.

Merci pour votre temps.

+1

Quelle est votre question, et en quoi est-ce lié à jquery? –

+0

Modifier la capitlisation du titre pour se conformer à la convention. – Sung

+0

idk stackoverflow l'a tagué ... –

Répondre

0

Selon la description mentionnée dans la question ci-dessus, essayez d'exécuter la requête suivante dans le shell MongoDB.

db.collection.find({ 
    'scriptData.email': '[email protected]' 
}) 
+0

a écrit la requête de cette manière et cela a fonctionné correctement. Merci pour votre temps! –

0

Voici comment vous pouvez y accéder en utilisant javascript. Mais votre question n'a pas beaucoup de sens, alors je ne peux pas vous donner une meilleure réponse.

var smth = { 
 
    "_id": { 
 
    "$oid": "59c50b9190c4fe1c54c8ca85" 
 
    }, 
 
    "scriptData": { 
 
    "email": "[email protected]", 
 
    "age": "10", 
 
    "lang": "undefined", 
 
    "avatar": "undefined" 
 
    } 
 
}; 
 

 
console.log(smth.scriptData.email);

Hope this helps!

+0

Eh bien, j'ai une DB et je charge une collection likee.a –

+0

Idk si elle est liée à jquery. Stackoverflow l'a mis en page automatiquement. bien que je charge une colection en utilisant ce var playerCollection = Spark.systemCollection ("player"); alors je recherche dans cette collection en faisant ceci: var result = playerCollection.findOne ("Les données de la requête"); Donc, j'ai besoin de savoir comment écrire correctement cette requête. –