如何使用变量作为 node.js 中的点符号地址与 Nedb? TypeError '无法读取未定义的 属性 'find'

How to use variable as dot notation address in node.js with Nedb? TypeError 'cannot read property 'find' of undefined

所以我正在尝试使用 Nedb 作为基础数据库(暂时)创建一个多语言论坛。我想将变量 'language' 传递到 'dot notation' 地址。这可能吗?

const Datastore = require('nedb');

const db = {};
 db.forum = new Datastore('forum.db');
 db.forum_de = new Datastore('de_forum.db');

 db.forum.findOne({ "TYPE": req_TYPE, "forum_UID":req_ID }, function (err, docsT) {
     if(docsT !== null) {
      var s_lan = docsT.USER_LEARN_LAN 
     s_lan = '_' + s_lan



  db.forum+s_lan.find({ $or: [{ "PARENT_ID": req_ID }, { 'GRAND_PARENT_ID': req_ID }] }, async 
   function (err, docs) {
      if(docs.length !== 0 ){

所以用户感兴趣的线程位于 db.forum 此搜索结果显示用户的语言 "s_lan"。然后我想使用这个结果来搜索 Datastor db.forum_de.

如何在数据存储的点符号地址中包含变量?

为了 access/set 使用 variable/dynamically 的对象字段,您需要使用 [] 语法。 对于给出的示例,如果您使用的是 es6 及更高版本,我们将有类似下面的内容。

let langKey = `forum_${s_lan}`
db[langKey].find()