【发布时间】:2019-05-17 05:17:35
【问题描述】:
我有一个 Node/Express/Mongoose API,其中有一个函数可以根据我传递给它的 ID 和类型参数来处理对文档的多次更新。
三个参数是: type: 基本上是我文档中的目标字段(即“linkedin”、“facebook”...) id: 我要更新的文档的字段的 id item:我正在推动更新的价值。
我做的第一件事是为查询创建一些常量:
const sharedType = 'shared.' + type + '.item';
const sharedTypeId = 'shared.' + type + '._id'
const rootType = type + '.item';
const rootTypeId = type + '._id'
例如,我将传入 :rootTypeId:'linkedin' 来为linkedin设置一个查询参数,这会产生一个 'linkedin._id' 的常量,它将填充以下内容:
Cards.update({ rootTypeId: id }, { $set: { rootType: item } }, { 'multi': true }, 功能(错误,卡){ 错误 === 空? console.log('No errors' + type + 'updated for cards') : console.log('Error: ', err); } )
然后我有另一个用于 rootType 的 const,对于linkedin,它最终会成为 'linkedin.name' 来定位项目字段。
我的问题是……
如果我这样硬编码: Cards.update({ 'linkedin._id': id }, { $set: {
它有效。
但使用常量不会,尽管它们应该得到相同的参数。
我在这里做错了什么?
谢谢!!
【问题讨论】:
标签: mongoose