我有一個數據庫集合(命名爲前方作戰點),象這樣:
{'followers':
{
'123':1
'123':2
'123':3
}
}
如果我運行查詢(使用pymongo):
cursor = fols.find()
cursor.count()
>>3
工作正常。現在:
cursor = fols.find({'followers':{'123':1}})
cursor.count()
>>1
再次正常工作。但如果我嘗試:
cursor = fols.find({'followers':{'123':{'$exists': True}}})
cursor.count()
>> 0
即使有3條記錄,它也會返回0。
你能否澄清一下:你有一個包含三個文件的追隨者集合:{'123':1},{'123':2},{'123':3}或者你有一個集合'fols '包含一個包含3個子文檔的文檔:{'followers':{'123':1},{'123':2},{'123':3}}?因爲他們的密鑰'123'將被覆蓋,只剩下一個副本。 – Thomas
我有一個包含單個文檔「追隨者」,其中包含其他值的集合。我可以確認它沒有被覆蓋,就像我做的那樣:fols.find()。它會返回我所有的3個文件。 – Amitash
如果你在fols集合中有單個文檔,那麼fols.find()應該只返回一個單獨的文檔,而不是3.我在mongo shell中試過這個:db.fols.insert({'followers':{'123 ':1,'123':2,'123':3}})和db.fols.find()取回{「_id」:ObjectId(「505149486195484752df6214」),「followers」:{「123」 3}}。 – Thomas