2016-05-12 11 views
0

forループの各コレクション項目に対してremove()を使用しようとしましたが、成功したようです。ただし、アイテムはまだコレクションにあります。 JavaScriptを使用してコレクションを作成する方法があれば、コレクションを完全に削除することができます。forerunnerdbでコレクションを完全に削除するにはどうすればよいですか?

function removeAllGames() { 
    var gameArray = games.find(); 
    var gameID; 
    var deletedObject; 
    var len = gameArray.length; 

    for (var i=0;i<len;i++) { 
     gameID = gameArray[i]._id; 

     deletedObject = games.remove({ 
      _id: gameID 
     }); 
     console.log(i + " - " + "deleted ID" + gameID + deletedObject); 
    } 
} 

私は報告します:

deleted ID1[object Object] 
dbsetup.js:304 1 - deleted ID2[object Object] 
dbsetup.js:304 2 - deleted ID1ee7978aa5ddc20[object Object] 
dbsetup.js:304 3 - deleted ID2899af1e797ff00[object Object] 
dbsetup.js:304 4 - deleted ID2234cd96dac8380[object Object] 
dbsetup.js:304 5 - deleted ID348a5bcd5f0f600[object Object] 
dbsetup.js:304 6 - deleted ID490930bb2589c80[object Object] 

そして、ここでは私の関数である前身のremove()を使用しています:はconsole.logで - ここ

は、それぞれのremove()の後に返されたオブジェクトであります私の進歩 - 助けてくれてありがとう!

答えて

0

私はそれを理解しました! remove()関数の後にsave()関数を使用する必要があります。これを行った後、コレクションから永久に消えたアイテム。私はまだコレクション自体を削除する方法を把握する必要がありますが、今のところこれで作業は完了です。

githubに関するドキュメント(私のように)に頼るだけでなく、forerunnerdbのチュートリアルを見ることをお勧めします。チュートリアルでは、適切に保存するための作業例を示します。

+0

collection.remove() - コレクション全体を削除する –

+0

@ T-Bulford collection.remove()はコレクションを削除しません。コレクションからドキュメントを削除するために使用されます。 collection.drop()は、コレクションを削除(kill、removeなど)します。 –

2

ForerunnerDBはメモリ内で動作します。つまり、永続ストレージからデータをロードし、ForerunnerDBのCRUDメソッド(挿入、更新、削除)でデータを変更すると、メモリ内のデータが変更されます。

新しいバージョンのデータで現在保持されているデータを上書きする場合は、.save()を呼び出す必要があります。

collection.remove()はすべてのドキュメントをコレクションから削除しますが、後で.save()を呼び出すまではその削除をストレージに保持しません。

永続ストレージは、ForerunnerDBの主な用途がJSONデータを操作するためのメモリ内のストアであり、一部のユーザーが永続性を望まない場合があるため、コアに組み込むのではなく、ForerunnerDBへのプラグインです。そのため、.load()と.save()を呼び出して永続ストレージからデータをロードし、そこにデータを保存する必要があります。

load()メソッドとsave()メソッドがpersistenceプラグインと通信している間、insert()とremove()のようなCRUD呼び出しはForerunnerDBのコアと通信しています。

(出典:ForerunnerDBとすべてのプラグインを書きました)

関連する問題