您可以在nodejs控制器的变量中使用mongodb表名吗?

时间:2019-01-16 17:23:05

标签: javascript node.js mongodb

假设我有一个名为“ bookings”的mongodb表,另一个名为“ users”等。

是否可以使用变量/参数作为表名来调用函数? 像这样:

DELETE

这是我对代码的建议。

let myData = getRecord("bookings", "ABCDE")
let myData = getRecord("users", "Torben")

2 个答案:

答案 0 :(得分:2)

通常,您在猫鼬中定义架构,因此您可能会在类似的地方进行定义:

var Bookings = mongoose.model('Bookings', bookingSchema);

现在,您可以使用Class作为参数而不是字符串来调用代码:

let myData = getRecord(Bookings, "ABCDE")

您的getRecord函数应该可以处理您的代码。

为什么最好使用变量/类而不是字符串? 直接使用变量时,如果您在变量名称中输入错误,IDE将显示错误,如果仅在其中传递字符串并输入错误,则不会发生这种情况。

答案 1 :(得分:1)

不太像那样。但是,您可以将创建的架构分配给对象的属性,然后使用变量名称查找这些属性。例如:

tables = {
    bookings: new Schema({ ... }),
    users: new Schema({ ... })
};

然后在您的函数中,只需执行以下操作即可:

 tables[tableName].findOne(...)