javascript - 在node.js中查询mongodb

标签 javascript node.js ajax mongodb

我有一个注册按钮,仅当数据唯一时才会在 mongo db 集合中插入数据,否则用户应留在同一页面上。为了实现相同的功能,我正在执行 upsert:true。这是我的 Node js 代码

var mongoClient=require('mongodb').MongoClient;
var url='mongodb://localhost:27017/test';
app.post('/newuser', function(req, res) {
    username=req.body.username;
    password=req.body.password;

mongoClient.connect(url,function(err,db){
    //console.log("connected")
    db.collection('users',function(err,collection){
        collection.update({username:username, password:password},{upsert:true},function(err,result){
            res.send(result.insertedCount);
        });
    })
})
});

前端代码是

$.ajax({
    type:'POST',
    url:'/newuser',
    data:{
        username:username,
        password:password
    },
    success:function(result){
        console.log(result);
        if(result===1){

        that.setState({
            isLoggedin:true
        })
    }else{
        alert("not inserted");
    }
    }
})
return false;

}

每次运行服务器时,成功函数都不会被执行。代码有什么问题? 谢谢。

最佳答案

使用时,您需要在更新查询中指定 $set。

collection.update(
  {},
  {$set: { username, password }},
  {upsert:true},
  function(err,result){
      res.send(result);
  }

EDIT:发送result对象,根据结果对象的nModifiedn值进行检查,获取更新和修改的记录数。

关于javascript - 在node.js中查询mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45035962/

相关文章:

javascript - highchart donut - 通过从 userService 搜索,单击切片打开页面

javascript - 在线广播流媒体延迟

javascript - 从 Controller 中的 Ajax 调用获取参数

javascript - 如何在Rails应用程序 View 中自动更新表的数据而不刷新页面?

javascript - Angular 2+ 从延迟加载组件访问/更改变量

javascript - 框未在 Canvas 上显示 Javascript

javascript - Canvas 绘图在 Ionic 2 中有效吗?

node.js - 如何在 Mongoose 中创建迁移?

Azure 上的 Node.js RESTful API

javascript - Node.js 文档未定义