我正在使用sqlite3
NPM 包。我想将 JSON 存储在我的数据库列之一中。我知道 SQLite 本身能够存储 JSON https://www.sqlite.org/json1.html,但我不一定确定如何通过 Node.js 做到这一点。
以前有没有人遇到过这种情况,使用sqlite3
NPM 包存储 JSON?使用轻量级 NoSQL 数据库会更好吗?
我正在使用sqlite3
NPM 包。我想将 JSON 存储在我的数据库列之一中。我知道 SQLite 本身能够存储 JSON https://www.sqlite.org/json1.html,但我不一定确定如何通过 Node.js 做到这一点。
以前有没有人遇到过这种情况,使用sqlite3
NPM 包存储 JSON?使用轻量级 NoSQL 数据库会更好吗?
sqlite3 包默认支持 Sqlite JSON1 扩展。对 sqlite3 包提供的示例稍作改动:
const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database(':memory:');
db.serialize(function() {
db.run('CREATE TABLE lorem (info TEXT)');
let stmt = db.prepare('INSERT INTO lorem VALUES(json(?))');
for (let i=0; i<10; i++) {
stmt.run(JSON.stringify({ a: i }));
}
stmt.finalize();
db.each('SELECT rowid AS id, json_extract(info, \'$.a\') AS info FROM lorem', function(err, row) {
console.log(row.id + ": " + row.info);
});
});
请注意,对于某些包配置或安装,默认情况下可能不包含 JSON1 扩展。如果这对您不起作用,请参阅 Mike Hardy 对此答案的评论。