【发布时间】:2018-10-07 10:38:13
【问题描述】:
我从网上尝试了以下基本示例;
var loki = require('lokijs');
var lokiDatabase = new loki('oops.json');
var collection = lokiDatabase.addCollection('props',{
indices: ['name']
});
function hello() {
var insertjson = {name:'Ram'};
collection.insert(insertjson);
lokiDatabase.saveDatabase();
var select = collection.findOne({name:'Ram'});
console.log('select response:'+ select.name);
}
hello();
我可以使用findOne 方法获得输出;
但在这里,问题是;正如教程所说,LokiJS 是一个内存数据库;其中,我可以看到所有插入和更新都显示在 oops.json 文件中。
我们在哪里存储/从内存中存储?
我是不是理解错了概念?
【问题讨论】:
-
这在调用 saveDatabase 方法时是可取的,你不觉得吗?我的意思是,如果您不将数据库保存在文件中,它仍然可以在内存中工作,对吧?
-
@gorhawk,从某种意义上说,在内存中,我们不会将记录保存在文件中,对吧?它应该在 RAM/某个地方!!!
-
只是不要调用 saveDatabase 方法。您的 findOne 查询仍然有效。这就是你想要的,不是吗?
-
如果我不调用 saveDatabase 方法会怎样,它会保存在内存中,所以每当我调用 findOne() 时,它会一直返回数据吗?
-
是的,但它不是服务器,因此数据库仅在您的程序运行期间持续存在,具体取决于环境(例如,我在浏览器环境中使用过它,这意味着只要页面已打开)抱歉,我真的不知道您对这些概念的熟悉程度,所以我不知道如何回答。
标签: lokijs