我存储项目的关系,它在结构属性:asyncmongo嵌套查询
{'item': <item_id>,
'rel_name': 'sizes:4762',
'rel_type': 'sizes',
'rel_value': '4762'}
而且具有MongoDB的查询,在MongoDB的外壳完美的作品:
db.relations.distinct(
'rel_name',
{item:{
$in: db.items.distinct('id', {
'attributes.cat': {$in:[477]},
'attributes.sizes': {$in:[4762,5071,5072,5089,5555,903]}
})
}}
)
,需要用asyncmongo运行它避免开销获取items.distinct的值并将其传递回mongo(可能超过10000) 也许有一种方法可以将整个查询作为字符串传递并获取结果吗?
找到解决方案。如果您不需要使用游标并获取所有数据(如在我的'独特'查询中),则可以使用db.eval。但要小心,这种方法在分片上不起作用,[默认情况下,db.eval()需要一个写锁定,以便在运行时阻止所有的读/写操作](http://www.mongodb.org/display/ DOCS /服务器端+代码+执行) –