2009-11-16 14 views
1

J'ai parcouru la documentation, mais je n'arrive pas à trouver un moyen d'effectuer une recherche sur ma collection mongodb en utilisant seulement une clé. Par exemple, supposons que c'est ce qui est dans ma collectionmongodb, pymongo interrogeant

{ 'res1': 10 } 
{ 'res2: 20 } 

Comment puis-je interroger la collection en utilisant uniquement la touche « RES1 », afin d'obtenir 10?

Répondre

2

Je ne sais pas exaclty ce que vous voulez, alors ... Ceci est si vous voulez que tous les documents qui ont mis la clé de RES1:

db.collection.find({'res1': { $exists : true }})

Et cela est si vous voulez que tous les documents qui ont RES1 clé fixé à 10:

db.collection.find({'res1': 10})

+0

parfait, merci! – pns

2

Ah, je suppose que je structurer mes données tout faux, je devrais avoir quelque chose comme ceci:

{ 'name': 'res1', 
    'value': 10 } 

À droite?

+0

Droit - vous pouvez également utiliser un spécificateur de champs pour récupérer uniquement la partie valeur: 'db.collection.find ({'name': 'res1'}, fields = ['value'])' – mdirolf

1
> db.collection.find({'res1': 10}) # Returns a cursor. 

Dans votre cas, la méthode find_one fera le nécessaire.

> db.collection.find_one({'res1': 10}) # Returns a document whose value is 10