0
Papers
컬렉션에 Paper
개의 문서가 있습니다. 각 Paper
에는 Person
문서에 대한 하나의 DBRef가 있습니다. 그래서 Paper
문서에있는 사람의 속성은 올바른 Person
pymongo : 참조로 쿼리하는 가장 좋은 방법은 무엇입니까?
사람
{'name' : 'Person A', 'slug' : 'PA'},
{'name' : 'Person B', 'slug' : 'PB'}
에 DBRef 내가 A라는 사람을 참조하는 모든 서류를 반환하는 쿼리를 만드는 싶습니다 종이
{'name' : 'Paper 1', 'person': DBRef},
{'name' : 'Paper 2', 'person': DBRef},
{'name' : 'Paper 3', 'person': DBRef}
입니다 (슬러그 == 'PA'). 쿼리에서 필터링을 시도하고 맵 축소 문에서 실패했습니다. pymongo에서 이것을 처리하는 가장 좋은 방법은 무엇입니까?
이 쿼리는
for paper in db['papers'].find({'person.slug' : 'PA'}):
print paper
지도도 제로 내가 이런 식으로 작업을 수행 할 수있는 것처럼 그것은 보인다
mapper = Code("""
function() {
if (this.person.slug == slug) {
emit (this, 1);
}
}
""")
reducer = Code("""
function (key, values) {
return key;
}
""")
result = db['papers'].map_reduce(mapper, reducer, "myresults", scope={'slug' : 'PA'})
for doc in result.find():
print doc
질의, 하나는 Person A의'_id'를 얻는 것이고, 다른 하나는 그 ID를 참조하는 논문을 얻는 것입니다. – paulmelnikow