recherche

Maison  >  Questions et réponses  >  le corps du texte

mongoose - Requête avec mongodb pour faire correspondre la valeur d'une chaîne avec chaque élément du tableau

Il y a une requête de document et tous les résultats sont les suivants :

db.order.find();

{ "_id" : ObjectId("58464c481dd68f2bcc8c280b"), "teamId" : "580493941a81901a6cabe9b1"},
{ "_id" : ObjectId("5848d4deffe1c81858b7648f"), "teamId" : "580493941a81901a6cabe9b1"},
{ "_id" : ObjectId("5848d557ee026d288000c922"), "teamId" : "581c33eb4d901f06f8ca4c65"}

Il est désormais nécessaire d'interroger les données correspondant au teamId avec les éléments du tableau. Par exemple, le tableau de conditions est le suivant :

const array = ['580493941a81901a6cabe9b1'];

Comment dois-je écrire l'instruction de requête ? Vous pouvez interroger les deux éléments de données suivants :

{ "_id" : ObjectId("58464c481dd68f2bcc8c280b"), "teamId" : "580493941a81901a6cabe9b1"},
{ "_id" : ObjectId("5848d4deffe1c81858b7648f"), "teamId" : "580493941a81901a6cabe9b1"},

Éclairez-moi s'il vous plaît, merci.

巴扎黑巴扎黑2788 Il y a quelques jours942

répondre à tous(2)je répondrai

  • 天蓬老师

    天蓬老师2017-05-02 09:25:36

    Eh bien, je me reproche toujours d'être paresseux.
    Je viens de vérifier le document, et j'ai tout de suite su comment le vérifier/embarrassant

    Publiez directement l'instruction de requête :

    db.order.find({teamId: {$in: ['580493941a81901a6cabe9b1']}});

    Si vous rencontrez un problème, consultez d'abord la documentation.

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-05-02 09:25:36

    Quand j'ai vu ce problème pour la première fois, j'ai pensé qu'il devrait être traité en utilisant l'opérateur $in. Je pensais que c'était un problème relativement simple.

    En regardant attentivement votre question, les données du tableau sont une chaîne de _id. Je me demande s'il y a une erreur de saisie et s'il est nécessaire de comparer les valeurs de _id et du tableau.

    Avant la comparaison, les chaînes du tableau doivent être converties en ObjectId.

    pour (i dans arraySrc) {arrayTgt.push(ObjectId(ArraySrc[i]));}

    Alors

    db.order.find({_id : { $in : arrayTgt}})

    Pour référence.

    répondre
    0
  • Annulerrépondre