javascript - '$set' 是空的,即使它不是
问题描述
我在更新 MongoDB 中的文档时遇到问题...在 params.sendingMethodPushTime 和 SmsTime 我收到一个新的 Date();
尝试在更新函数本身内设置 $ 集并尝试使用硬编码值
userScheme.statics.updateAlertSendingTimes = function (params, cb) {
var query = {uId: params.uIds};
var set = {};
if (params.alertType) {
set['alertSendingTimes'] = {};
set['alertSendingTimes'][params.alertType] = {};
set['alertSendingTimes'][params.alertType]['push'] = params.sendingMethodPushTime;
set['alertSendingTimes'][params.alertType]['sms'] = params.sendingMethodSmsTime;
var update = {
'$set': set
}
this.update(query, update, {upsert: true}, cb);
} else {
cb(null)
}
};
$set 应该通过并且 MongoDB 文档已更新,但相反,我得到 $set 为空等
编辑:我的猫鼬版本是 4.13.4,我的节点版本是 6.16,params.alertType 是一个动态接收的字符串(在我的例子中是 '1' 或 '2')
解决方案
问题出在计划上……它是警报而不是警报
推荐阅读
- r - Shinydashboard box() 被 Shiny 中的图形包掩盖
- java - 如何在 android studio 中使用 listview 根据类函数的返回进行搜索?
- sql-server - SSIS 将文件从一个域移动到另一个域
- php - $wpdb->get_row() 是否将 LIMIT 1 添加到查询中?
- mapbox - 是否可以在 Mapbox Studio 中删除一定距离内的重复点标签?
- reactjs - 在 React Native 中导入和导出组件
- git - 在本地和远程之间显示不同的文件
- syntax - 为什么“朱莉娅语言文档”中的这一行为输入参数是不同类型的情况定义了一个外部构造函数?
- rust - 编写一个基于输入 ident 令牌调用方法的宏
- selenium-ide - 在 chrom 上的 Selenium IDE 中使用 VerifyElementPresent 的输出状态