Как сделать "Вставить, если не существует", используя orientjs?

Каков идиоматический способ сделать "вставку, если не существует"?

Можно ли это сделать без транзакций?

3 ответа

Попробуй это:

с 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 вызов get, чтобы получить все данные, и выполнить пакетную вставку только для тех, которых там еще нет.

Если ваши данные создания очень велики (что превышает оперативную память), вам придется следовать методу Алессандро (который будет медленным, потому что для каждой вставки вам придется проверять).

Другие вопросы по тегам