如果不存在,那么进行“插入”的惯用方法是什么?
没有交易可以做到这一点吗?
试试这个:
如果不存在,使用upsert会创建一条记录,除非它更新
var OrientDB = require('orientjs');
var server = OrientDB({
host: 'localhost',
port: 2424,
username: 'root',
password: 'root'
});
var db = server.use({
name: 'GratefulDeadConcerts',
username: 'root',
password: 'root'
})
db.query('UPDATE V SET id = 23 UPSERT WHERE id = 23')
.then(function (response) {
console.log(response);
});
server.close();
希望能帮助到你。
问候
例如,您可以使用此代码
db.query('select from v where rid = 23')
.then(function (record) {
if(record.length==0){
db.query('insert into v(rid) values (23)');
}
});
希望能帮助到你。
如果数据非常小(您可以在服务器的内存中保存),则可以进行1次调用以获取所有数据,并仅对那些尚未存在的数据执行批量插入。
如果你的创建数据非常庞大(超过运行时内存),你将不得不遵循Alessandro的方法(这将是很慢的,因为每次插入都需要检查)。