3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

岩手県立大学ソフトウェア情報学部Advent Calendar 2014

Day 20

milkcocoaのremoveメソッドとセキュリティルールで少しハマった件

Posted at

こんにちはLIGのエンジニアのびすけです。

milkcocoaでデータ削除するときはremoveメソッドを使います。
ドキュメントにあるように書くと以下のようになります。
ちなみに以下のコードはnode.jsです。

app.js
var MilkCocoa = require('./milkcocoa');
var milkcocoa = new MilkCocoa('https://{your-app-id}.mlkcca.com');
var dataStore = process.argv[2]; //引数にデータストア名を指定して実行

var db = milkcocoa.dataStore(dataStore);
console.log(dataStore + 'deleteing');

var count = 0;

db.query().limit(10000).done(function(data) {
    console.log(count);

    data.forEach(function(value) {
        db.remove(value.id);
        count++;
        console.log(count);
    });
});

実行するときはこんな感じです。

$ node app (データストア名)

実際に実行すると以下のようになります。

$ node milkdel.js demoDs
demoDs deleteing
connected
0
1
2
3
・
・
・
10000

##セキュリティルール

上手く行かなかった例

データストアを削除したいのでremoveだけ許可にしていました。

demoDs {
 permit : remove;
 rule: true;
}

この時点で実行すると

$ node milkdel.js demoDs
demoDs deleteing
connected
(反応なし)

という感じになってつまりました苦笑

現時点では データストアをまるっと消すメソッドは無いため、queryを使って取得 -> removeで削除ループという実装になります。

demoDs {
 permit : query, remove;
 rule: true;
}

モチロンallでもok

demoDs {
 permit : all;
 rule: true;
}

でもセキュリティルールはちゃんと設定したほうが安心ですよ!

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?