2012-12-03 37 views
0

我在MongoDB的下列文件:Python和MongoDB的選擇

{ "_id" : { "$oid" : "50bc8c38cb5ecd32fb8d12d3"} , "p" : 0 , "d" : <Binary Data> , "kid" : 6384} 
{ "_id" : { "$oid" : "s6bc8c3phg5ecd32bbgd12f3"} , "p" : 1 , "d" : <Binary Data> , "kid" : 6384} 
{ "_id" : { "$oid" : "k7bc8kf8vg5echy2bbgd12m5"} , "p" : 1 , "d" : <Binary Data> , "kid" : 6385} 
{ "_id" : { "$oid" : "k7bc8kf8vg5echy2bbgd12m5"} , "p" : 1 , "d" : <Binary Data> , "kid" : 6386} 

我想查詢數據庫回饋只具有相同的孩子,但不同的P中的人。對於每個孩子,如果存在則應該返回2行否則不返回。

在例子中,結果應該是:

{ "_id" : { "$oid" : "50bc8c38cb5ecd32fb8d12d3"} , "p" : 0 , "d" : <Binary Data> , "kid" : 6384} 
{ "_id" : { "$oid" : "s6bc8c3phg5ecd32bbgd12f3"} , "p" : 1 , "d" : <Binary Data> , "kid" : 6384} 

這可能嗎?

+0

不,你不能在查詢中這樣做。 – JohnnyHK

回答

0

您需要執行兩個查詢或將它們排序到客戶端。

0

你可以爲你的兩個查詢之一合計方法

db.myTable.aggregate([ { '$group': { '_id': "$kid", 'count': { '$sum': 1 } } }, 
         { '$match': { 'count': { '$gt': 1 } } } ])['result'] 

這應該給你的孩子列表以及多個父

[{u'count': 2, u'_id': 6384}] 

然後,你可以做一個使用爲那些孩子找到。