正确比较节点中的数据存储区密钥

看来@google-cloud/datastore没有提供比较密钥的方法,而密钥本身不具有可比性。 有没有适当的方法来比较键? 我自己做了一些刺

 function compare(key1, key2) { return (key1.kind == key2.kind) && (key1.id == key2.id) } 

但是,这不适用于只有祖先或钥匙的钥匙。 所以更一般的东西可能看起来像

 function compare(key1, key2) { if (key1.path.length != key2.path.length) { return false; } for (var i = 0; i < key1.path.length; i++) { if (key1.path[i] != key2.path[i]) return false; } return true; } 

这些解决scheme似乎工作,但有一个丑陋的地方。 是否只有一个内置函数,我想念?

你不会错过任何东西。 数据存储的关键比较没有内置的实现。 我相信这是因为它可能高度依赖于业务逻辑。

我正在使用这个实现。

 /** * Compare two keys on equality * @param {Object} key1 * @param {Object} key2 * @return {boolean} */ function compareKeys (key1, key2) { return key1.namespace === key2.namespace && _.isEqual(key1.path, key2.path); }