【问题标题】:How to delete a Collection in LokiJS如何在 LokiJS 中删除集合
【发布时间】:2018-11-23 12:06:16
【问题描述】:

我最近一直在 Node 上开发 LokiJS,但我找不到删除整个 Collection 本身的命令,

我尝试使用这些命令并假设它存在,但我找不到任何文档/示例来删除集合。

// let result = this.db.dropCollection(collectionName); // let result = this.db.removeCollection(collectionName); // let result = this.db.deleteCollection(collectionName);

其他方式我知道我可以通过读取文件并删除整个对象来实现相同的目的,但是有内置的 LokiJS 函数吗?

【问题讨论】:

    标签: javascript node.js node-modules lokijs


    【解决方案1】:

    要删除一个集合,您需要对 Loki 主对象使用 removeCollection() 方法。 See docs here.

    例如,如果您将 Loki 实例初始化如下:

    const loki = require('lokijs');
    const lokidb = new loki();
    
    // Add a collection (that we will remove later)
    let myCollection = lokidb.addCollection('myCollection');
    

    现在lokidb 是您的主要loki 对象,这是您执行removeCollection() 所需的对象。

    // Let's remove the collection
    lokidb.removeCollection('myCollection');
    
    // * poof * ....
    // myCollection is now gone
    
    // To make sure that this deleting change is persisted (if necessary)
    lokidb.saveDatabase();
    

    我不知道您是如何设置 loki 数据库的,但希望这个示例对您有所帮助。

    【讨论】:

    • 我尝试了同样的方法,但是没有用,我还有什么遗漏吗?
    • 您能否分享您的代码的完整示例,使用代码笔或要点?
    • 嘿,我刚刚发现问题出在哪里,lokidb.saveDatabase(); 实际上反映了变化,事实上我将自动保存间隔保持得非常短,仍然有效 - lokidb.saveDatabase();成功了!感谢您的帮助!
    • @MaheshKumaran 很高兴你知道了。我添加了您的步骤,以防其他任何人像您一样遇到持久性和自动保存问题。如果需要,请检查已解决的答案以帮助他人。 :-)
    • 即使使用db.card.findAndRemove({guid}); await new Promise((resolve, reject) => { db.loki.saveDatabase((err) => err ? reject(err) : resolve()); }); console.log(db.card.find({guid})); 仍然不起作用。
    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2021-08-27
    相关资源
    最近更新 更多