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的论文?