我存儲項目的關係,它在結構屬性: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 /服務器端+代碼+執行) –