- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 findByIdAndUpdate 方法更新 mongo 数据库中的集合。我点击端点并发送包含更新信息的请求,响应始终是更新之前的信息,并且更新永远不会出现在我的数据库中。
我做错了什么?
下面是我的 edit.js 文件:
const express = require('express');
const bodyParser = require('body-parser');
const _ = require('lodash');
const dbConfig = require('../mongo/dbConfig');
const Band = require('../mongo/models/band');
const mongoose = require('mongoose');
// Initialize the router
const router = express.Router();
mongoose.connect(dbConfig.devUrl);
//init body parser
router.use(
bodyParser.urlencoded({
extended: true
})
);
router.use(bodyParser.json());
router.post('/band/editProfile', function (req, res) {
console.log(req.body);
console.log("it hit !!!!!!!!!!!!!!!!!!");
Band.findByIdAndUpdate(
// the id of the item to find
req.body.id,
{
bands: {
bandName: req.body.bandName,
genre: req.body.genre,
numberOfMembers: req.body.numberOfMembers,
city: req.body.city,
state: req.body.state,
zip: req.body.zip,
travel: req.body.travel,
travelDistance: req.body.travelDistance,
spotify: req.body.spotify,
youtube: req.body.youtube,
soundcloud: req.body.soundcloud,
twitter: req.body.twitter,
facebook: req.body.facebook
}
},
function (err, response) {
// Handle any possible database errors
if (err) {
console.log("we hit an error" + err);
res.json({
message: 'Database Update Failure'
});
}
console.log("This is the Response: " + response);
}
);
});
这是我的乐队模型:
//Module Imports
const mongoose = require('mongoose');
//Initializes a mongoose schema to be used with the document
const bandSchema = new mongoose.Schema({
bandName: String,
genre: String,
numberOfMembers: Number,
city: String,
state: String,
zip: String,
travel: Boolean,
travelDistance: Number,
spotify: String,
youtube: String,
soundcloud: String,
twitter: String,
facebook: String
});
//Creates the Schema to be used with the export
let Band = mongoose.model('band', bandSchema);
//Exports the Schema to the API
module.exports = Band;
我已经对此进行了相当彻底的研究,但遇到了困难,因此非常感谢您的帮助!
最佳答案
bands
位于您的更新对象中,但不在您的架构中。只需删除更新对象的额外层,更新就应该可以工作。但您还需要包含 {new: true}
选项作为单独的参数,以便返回更新的文档而不是原始文档(请参阅 docs )。
Band.findByIdAndUpdate(
req.body.id,
{
bandName: req.body.bandName,
genre: req.body.genre,
numberOfMembers: req.body.numberOfMembers,
city: req.body.city,
state: req.body.state,
zip: req.body.zip,
travel: req.body.travel,
travelDistance: req.body.travelDistance,
spotify: req.body.spotify,
youtube: req.body.youtube,
soundcloud: req.body.soundcloud,
twitter: req.body.twitter,
facebook: req.body.facebook
},
{new: true},
function (err, response) {
// Handle any possible database errors
if (err) {
console.log("we hit an error" + err);
res.json({
message: 'Database Update Failure'
});
}
console.log("This is the Response: " + response);
}
);
关于node.js - Mongodb/Node.js findByIdAndUpdate 方法未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49723084/
findByIdAndUpdate() 成功更新文档,但返回我不明白的错误。 这是架构: const userSchema = mongoose.Schema({ phone: String,
这个问题在这里已经有了答案: Mongoose: findOneAndUpdate doesn't return updated document (16 个答案) 关闭 5 年前。 所以我有这个
似乎无法理解为什么 findByIdAndUpdate 没有更新数据。我将其更改为 findByIdAndRemove 以查看是否可以发现错误,但是当我更改它时,它确实被删除了,因此我无法找到问题所在
这是我的代码: app.post('/api/scheduleObject_Update', function(req, res) { var parameter = req.para
我正在尝试找到一种一致的方法来验证我保存到数组中的一些 id。 架构: var MySchema = new Schema({ name: { type: String }, otherIds
这是我的架构: var postSchema = new mongoose.Schema({ _id: mongoose.Schema.ObjectId, title: String,
我在下面有一个相当直接的方法来更新基于其 ObjectId 的文档。它不会返回错误,但无法对文档进行所需的更新。我认为它失败了,因为根据我的研究,findByIdAndUpdate() 仅采用纯 Ja
我有一个模式并指定登录是唯一的是真的。当我使用 findByIdAndUpdate 并传递查询 $set 来更新用户对象时,它确实不在登录被复制时抛出错误。有谁知道为什么以及如何更新对象并强制执行架构
我正在尝试使用 mongoose 的 findByIdAndUpdate 方法。当我更新具有 _id 字段集的现有文档时,效果很好。但是,插入一个新文档,使用 upsert: true 插入一个没有生
我是 Mongodb 新手,我正在使用 findByIdAndUpdate 它将更新文档但返回旧文档,这是我的功能, exports.createInner = function (req, res,
因此,当我执行 findByIdAndUpdate 时,它不会按预期执行我的 promise 并进入我的捕获。我使用 res.json(req.user.id) 和 res.json(profil
我的想法很简单,就是从req.body中获取更新值,但是它不能正常工作,mongodb中的数据永远不会改变。 已尝试过 {$set: 电子邮件、密码} const id = { _id: re
我通过创建 API 并在 Angular 2 服务中调用它们,根据 Nodejs 中的 id 更新产品。 routes/products.js router.post('/:id', function
我有一个名为 Message 的 Mongoose 模型,当创建该模型时,我想将消息 Id 保存到另一个名为 User 的模型中的数组中。但是,当调用 findByIdAndUpdate 方法时,它不
findByIdAndUpdate 方法应该更新或插入数据库中的对象,但它不执行任何操作。它也不会抛出错误消息或其他内容。 我也尝试过使用原始的 ObjectId 作为 _id 字段,但也不起作用。
所以我只想更新传递的对象的值。 Event.findByIdAndUpdate(req.body.id, { $set: {
开发 Node.js API。我有显示 field 的 mongo 数据。它包含一个地址,例如...... "address": { "street": "123 main s
我试图在用户点击某个按钮时增加赞成票,并将他的 stormpath 用户 ID (req.user.href) 存储在一个数组中。 尝试 1: if (newUpvoters = found_post
我想知道是否有最好的方法来做到这一点: /** * Article Schema */ var PostSchema = new Schema({ title: { typ
我写了一个更新查询,它将通过 _id 找到记录并更新。这段代码完全可以正常工作,直到我在该集合中添加一条新记录。如果添加一条记录并进行查询,它将转到成功部分但返回 null 而不是数据。但是当我重新启
我是一名优秀的程序员,十分优秀!