假设我有一个名为“ bookings”的mongodb表,另一个名为“ users”等。
是否可以使用变量/参数作为表名来调用函数? 像这样:
DELETE
这是我对代码的建议。
let myData = getRecord("bookings", "ABCDE")
let myData = getRecord("users", "Torben")
答案 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(...)