比方說,我有一個父/子關係模型與2谷歌數據存儲類型。如何解決Google數據存儲n + 1查詢問題?
如果我使用父鍵查詢子表,有沒有辦法從父表中檢索字段而不必執行n + 1查詢?上述
RequestLedger
key | type | content | sentTimestamp
123 email <ssd> 10-10-10
ResultLedger
key | requestLedger |to | deliveredTimestamp | bouncedTimestamp | other
[email protected] key(request_ledger,123) [email protected] 10-10-10
代碼
var query = ds.createQuery(env.get('GCLOUD_DATASTORE_NAMESPACE'), resultLedgerKind)
.offset(offset)
.limit(max);
if(parentId){
query = query.filter('requestLedger', ds.key([requestLedgerKind, parentId]));
}
query.run(function(err, entities) {
callback(err, entities);
});
查詢給我從子表和父的參考父樣的實體,而是隻有關鍵領域的數據。任何簡單的方法都可以在查詢中同時返回所有內容?
所以說「2谷歌數據存儲類型」,但您的示例數據表明只是一種「RequestLedger」,雖然密鑰文字使用不同類型的「request_ledger」和代碼第三個「requestLedger」。你能澄清嗎? –
ResultLedger種類有一個名爲requestLedger的屬性,它是RequestLedger種類 – 1977