Mark As Sold 架构: var bookSchema =-6ren">
gpt4 book ai didi

javascript - Mongoose findByIdAndUpdate 方法来切换和更新数据库中的 bool 值

转载 作者:可可西里 更新时间:2023-11-01 09:57:13 26 4
gpt4 key购买 nike

我正在尝试在单击按钮时切换和更新数据库中的 bool 值..
我的 HTML:

<form action="/browse/<%= book._id %>/sold" method="GET">
<button type="submit"> Mark As Sold </button>
</form>

架构:

var bookSchema = new mongoose.Schema({
title: String,
description: String,
sold: { type:Boolean, default: false }
});

我尝试在 .get 路径上使用它:

Book.findByIdAndUpdate(req.params.id, {$set: {sold: !sold} }, function(err, book){
....
}

但它不起作用..(sold is undefined)

我是 express 和 mongoose 的新手,在谷歌上搜索了很多但找不到解决方案。请帮忙。还有其他方法可以解决这个问题吗?

最佳答案

您正在使用的方法将不起作用。您在此片段中引用了一个未声明的变量sold:{sold: !sold}。如果有的话,你想做 {sold: !this.sold},但是 findById 中的 this 是一个查询,而不是模型。您必须为所需的书使用 findById,手动更新它 (book.sold = !book.sold),然后保存

您可以在您的模型上创建一个静态方法来完成这一切。

看起来像


bookSchema.statics.findByIdAndToggleSold = function(id, callback){
//您要查找的代码,然后在此处更新。
}

关于javascript - Mongoose findByIdAndUpdate 方法来切换和更新数据库中的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com