在Google Cloud DataStore中插入29447种单一实体后,我等待大约30秒,然后查看该特定类型的实体数量。令人惊讶的是,我注意到其中一些丢失(getCurrentKeys
返回少于29447个实体)。当我在较长时间(约1小时)后检查时,我可以看到所有实体都在那里(getCurrentKeys
返回预期的29447个实体)。
用于读取实体数量的代码如下:
const runQuery = (query) => {
return new Promise((resolve, reject) => {
datastore.runQuery(query)
.then(results => {
const entities = results[0];
resolve(entities);
})
.catch(e => reject(e));
});
};
const getCurrentKeys = () => {
const query = datastore.createQuery(KIND)
.select('__key__');
return runQuery(query);
};
async function main() {
const currentKeys = await getCurrentKeys();
console.log(`currentKeys: ${currentKeys.length}`);
}
main();
关于可能发生的事情的任何想法?
提前致谢
答案 0 :(得分:1)
非祖先查询最终是一致的。在所有行显示之前需要一段时间。
本文应该解释更多:
答案 1 :(得分:0)
经过一番研究后,我认为它可能与索引有关。我相信在运行查询时,索引的更新速度不够快。实体具有许多属性,因此涉及许多索引。