Ho una collezione di database (denominati cc) in questo modo:
{'followers':
{
'123':1
'123':2
'123':3
}
}
Se corro il (pymongo Utilizzando) query:
cursor = fols.find()
cursor.count()
>>3
funziona bene. Ora:
cursor = fols.find({'followers':{'123':1}})
cursor.count()
>>1
Ancora funziona bene. MA se provo:
cursor = fols.find({'followers':{'123':{'$exists': True}}})
cursor.count()
>> 0
Restituisce 0 anche se ci sono 3 record.
Puoi chiarire: hai una raccolta 'follower' con tre documenti: {'123': 1}, {'123': 2}, {'123': 3} o hai una raccolta' fols 'che contiene un singolo documento con 3 documenti secondari: {'followers': {'123': 1}, {'123': 2}, {'123': 3}}? Perché la chiave "123" verrebbe sovrascritta e rimane solo una copia. – Thomas
Ho un gruppo di raccolta che contiene un singolo documento "seguaci" che contiene gli altri valori. E posso confermare che non viene sovrascritto come se lo facessi: fols.find(). Restituisce tutti i miei 3 documenti. – Amitash
Se si ha un singolo documento nella collezione fols, quindi fols.find() dovrebbe restituire solo un singolo documento, non 3. Ho provato questo nella shell di mongo: db.fols.insert ({'followers': {'123 ': 1,' 123 ': 2,' 123 ': 3}}) e con db.fols.find() torna {"_id": ObjectId ("505149486195484752df6214"), "followers": {"123": 3}}. – Thomas