0
我插入一個實體:錯誤:全局查詢不支持強一致性
datastore.save({
key: datastore.key(['Users', 'bob']),
method: 'insert',
data: [
{
name: 'email',
value: '[email protected]',
excludeFromIndexes: false
}
]
}, function(err) {
if (!err) {
console.log('insert was a success');
}else{
console.log(err);
}
});
然後我想查詢通過電子郵件用戶:
var query = datastore.createQuery('Users').filter('email', '[email protected]');
datastore.runInTransaction(function(transaction, done) {
transaction.runQuery(query, function(err, entities) {
if (!err) {
//insert another thing into the datastore here ...
}else{
console.log('err = ' + err);
transaction.rollback(done);
return;
}
});
});
但我得到的錯誤:
global queries do not support strong consistency
我看到我無法修改文檔中節點的一致性,所以如何查詢?
如果我使用gcloud-nodejs,那該怎麼辦?我如何指定我希望這些查詢強烈一致?在文檔中,它表示讀取一致性不能在gcloud-node中指定。爲什麼是這樣?在gcloud中會有這種支持嗎? – user2924127
對不起,我現在有點困惑哈哈。這是我的場景:我有一個叫'用戶'的類。這裏的實體沒有父母或孩子。我需要查詢一些用戶,如果他們發現我需要'鎖定'這些實體。然後我需要查詢更多的實體,但這次我需要查詢名爲朋友的實體(同樣,這些都沒有父母或孩子)。我知道需要更新用戶實體,我需要插入更多的朋友實體。這必須是原子的,全部或沒有。使用gcloud-node可能嗎? – user2924127
如果您沒有父母,則無法在事務中進行查詢。 read_consistency選項只能用於降低一致性級別 - 如果您運行的是一致性強的查詢,則可以出於性能原因要求最終的一致性,但不能反其道而行之。 –