Python和mongodb选择
我在mongodb中有以下文档:Python和mongodb选择,mongodb,nosql,Mongodb,Nosql,我在mongodb中有以下文档: { "_id" : { "$oid" : "50bc8c38cb5ecd32fb8d12d3"} , "p" : 0 , "d" : <Binary Data> , "kid" : 6384} { "_id" : { "$oid" : "s6bc8c3phg5ecd32bbgd12f3"} , "p" : 1 , "d" : <Binary Data> , "kid" : 6384} { "_id" : { "$oid" : "k7bc8
{ "_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}
{“\u id”:{“$oid”:“50bc8c38cb5ecd32fb8d12d3”},“p”:0,“d”:“kid”:6384}
{“_id”:{“$oid”:“s6bc8c3phg5ecd32bbgd12f3”},p:1,“d”:“kid”:6384}
{“_id”:{“$oid”:“k7bc8kf8vg5echy2bbgd12m5”},“p”:1,“d”:“kid”:6385}
{“_id”:{“$oid”:“k7bc8kf8vg5echy2bbgd12m5”},“p”:1,“d”:“kid”:6386}
我想查询数据库,只返回那些有相同的孩子,但不同的p。对于每个孩子,如果存在,它应该返回2行,否则没有
在示例中,结果应为:
{ "_id" : { "$oid" : "50bc8c38cb5ecd32fb8d12d3"} , "p" : 0 , "d" : <Binary Data> , "kid" : 6384}
{ "_id" : { "$oid" : "s6bc8c3phg5ecd32bbgd12f3"} , "p" : 1 , "d" : <Binary Data> , "kid" : 6384}
{“\u id”:{“$oid”:“50bc8c38cb5ecd32fb8d12d3”},“p”:0,“d”:“kid”:6384}
{“_id”:{“$oid”:“s6bc8c3phg5ecd32bbgd12f3”},p:1,“d”:“kid”:6384}
这可能吗?您需要执行两个查询或在客户端对它们进行排序。您可以使用聚合方法作为两个查询之一
db.myTable.aggregate( [ { '$group': { '_id': "$kid", 'count': { '$sum': 1 } } },
{ '$match': { 'count': { '$gt': 1 } } } ] )['result']
这会给你一张有不止一个父母的孩子的名单
[{u'count': 2, u'_id': 6384}]
然后,你可以为这些孩子做一个查找。不,你不能在查询中这样做。