javascript - dbs中只有一个文档 - 如何更新它?

标签 javascript node.js mongodb mongoose

我有一个 Node js 程序,我只想允许特定集合中的一个文档。

蒙戈架构:

var DefaultPollSchema = new mongoose.Schema({
    milliseconds: Number
});

所以集合总是这样的:

> db.defaultpolls.find()
{ "_id" : ObjectId("58500051a4b71d0c4d5c6ab3"), "milliseconds" : 15000, "__v" : 0 }

我想创建一个 API 来更新此值,但我不想使用 objectId 来进行更新。由于我在这个集合中只有一个文档 - 有没有办法做到这一点?

我尝试使用这个:

router.put('/update', function(req, res, next) {
  var milliseconds = req.body.milliseconds;
    defaultPoll.updateMany({}, {$set: {milliseconds: milliseconds}}, function (err, interval){
      if (err) {
          res.json(err);
        } else {
          res.json(interval);
        }
    })
});

但是这给了我以下错误:

TypeError: Object function model(doc, fields, skipId) {
    if (!(this instanceof model)) {
      return new model(doc, fields, skipId);
    }
    Model.call(this, doc, fields, skipId);
  } has no method 'updateMany'

还有其他方法可以编写API吗?

谢谢

最佳答案

Mongoose 更新的方法称为 update ,所以方法很好,但应该是:

defaultPoll.update({}, {$set: {milliseconds: milliseconds}}, function (err, raw) { ...

关于javascript - dbs中只有一个文档 - 如何更新它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41123707/

相关文章:

在 Ubuntu 14.04 LTS 上重启系统后 MongoDB 无法启动

javascript - 计算javascript中的日期差异

javascript - 通过 jquery 或 javascript 限制复选框检查

javascript - react 类型错误: "x" is not a function

javascript - 从多行javascript和jquery中删除一行

javascript - 如何打包带有可选子模块的 Node 模块?

node.js - 如何在 node.js pdf 工具包中的一行上写文本?

mysql - 如何修复回调已经在环回模型中调用

mongodb - $geoNear 匹配最近的数组

javascript - 将新集合添加到现有 mongo 数据库