node.js - 检查文档中的字段

标签 node.js mongodb express mongoose

假设我有以下架构

 var userSchema = new Schema({
    name : String
  });

  var User = mongoose.model('User',userSchema);

编辑:如果用户尝试更新不存在的字段,我需要抛出异常。我的问题是如何检查更新文档中不存在更新字段。这是我需要的一个小例子:

  app.post('/user/update/:id', function (req, res) {
     var field = req.param('field'),
          value = req.param('value'),
          id = req.param('id');

     User.findOne({_id: id},function(err, user){
        if(err) throw err;

        if (user) {

          user[field] = value;          // Here is I need to check that field is exists
                                        // in user schema. If does't I have to throw 
                                        // an execption.

          user.save(function (err){
             return res.send(200);
          });
        }            
     })
  });

最佳答案

尝试将 $exists 添加到 update() 的查询参数中。这将允许您仅在某个字段存在(或不存在)时更新文档。

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24exists

关于node.js - 检查文档中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11171896/

相关文章:

mongodb - Camel-mongo组件不支持多mongo DB连接

node.js - 发生某些错误时 Nodejs Express 服务器会宕机

javascript - Express:获取完整路线参数

node.js - 如何在 Elasticsearch 中使用 multi_match 查询传递多个值以在多个记录中搜索多个字段

node.js - Puppeteer 页脚仅显示在最后一页

java - 使用复合自定义 _id 插入 Mongodb 时出现 MongoWriteException

python - 如何在 Python 中加入 MongoDB 集合?

node.js - 为什么我不能使用node.js将对象插入到mongodb中?

node.js - 为什么 NPM 在 Docker 容器中不可用

html - Express + AngularJS + HTML : ng-include not working (404 - Page not found error)