我尝试将blockDate
添加到用户数据库中,但下面的代码没有做任何更改。我查看了data.username
和blockDate
是有效值。我从{ ok: 0, n: 0, nModified: 0 }
变量获得res
。我怎么能弄清楚这个请求有什么问题?
router.post('/account/block', async (ctx, next) => {
let data = ctx.request.body
let fixedDate = parseInt(data.days)
let blockDate = DateTime.local().plus({days: fixedDate}).toISO()
let param = {
search: { username: data.username},
update: { $set: {blockDate: blockDate}}
}
try {
console.log(param)
let res = await User.update(param.search, param.update, {multi: true})
console.log("res", res)
} catch (e) {
console.log("err", e)
}
})
答案 0 :(得分:0)
我不能告诉你它是否应该是一个没有看到你的猫鼬模型的日期。
如果它有类型Date,你的mongoose验证器可能会过滤它,这可能是没有更新发生的原因。您可以使用片刻将字符串转换为日期。例如(包括您可能喜欢或不喜欢的一些其他“改进”):
router.post('/account/block', async (ctx, next) => {
const data = ctx.request.body
const fixedDate = parseInt(data.days)
const blockDateString = DateTime.local().plus({days: fixedDate}).toISO()
const blockDate = moment(blockDateString)
const param = {
search: { username: data.username},
update: { blockDate }
}
try {
console.log(param)
const res = await User.update(param.search, param.update, {multi: true})
console.log("res", res)
} catch (e) {
console.log("err", e)
}
})