Mongodb pymongo:通过引用进行查询的最佳方式?

Mongodb pymongo:通过引用进行查询的最佳方式?,mongodb,pymongo,Mongodb,Pymongo,我在文件集合中有一堆文件文档。每个纸张都有一个指向个人文档的DBRef。因此,纸张文档中的person属性是正确的person 人 {'name' : 'Person A', 'slug' : 'PA'}, {'name' : 'Person B', 'slug' : 'PB'} 纸 我想创建一个查询,返回引用persona(slug=='PA')的所有论文。我尝试在查询中进行筛选,但在map REDUCT语句中失败。在pymongo处理这个问题的最好方法是什么 此查询不返回任何结果 for

我在
文件
集合中有一堆
文件
文档。每个
纸张
都有一个指向
个人
文档的DBRef。因此,
纸张
文档中的person属性是正确的
person

{'name' : 'Person A', 'slug' : 'PA'},
{'name' : 'Person B', 'slug' : 'PB'}

我想创建一个查询,返回引用persona(slug=='PA')的所有论文。我尝试在查询中进行筛选,但在map REDUCT语句中失败。在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
Map Reduce也返回零结果

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

看起来我可以这样做,但我不能使用其他属性

for paper in db['papers'].find({'person.$id' : person['_id']}):

接下来的两个查询,一个是获取A个人的
\u id
,另一个是获取引用该id的论文?