【问题标题】:MongoDB insertion not workingMongoDB插入不起作用
【发布时间】:2017-08-26 17:25:06
【问题描述】:

我是 MongoDb 的新手,我有一个关于数据插入的问题。我的“用户”集合的 Mongoose 架构:

var user = new mongoose.Schema({

  username : {type: String},
  email    : {type: String,index: {unique: true}},
  password : {type: String},
  feed     : [{
                title       : {type: String},
                description : {type: String},
                latitude    : {type:Number},
                longitude   : {type:Number},
                feedImages  : [{imageUrl: {type: String}}]
             }]
});

在这里,我在第一次服务调用中将数据插入用户名、电子邮件和密码:

app.post('/users',function(req,res) {

    var username = req.body.username;
    var email    = req.body.email;
    var password = req.body.password;

    var userData = {'username':username,'email':email,'password':password};
    new db.user(userData).save(function(err,result){
      if (err) {
         res.json({"success": '0', "message": "Error adding data"});
        }
      else {
             res.json({"success": '1', "message": "Data added"});
        }
     });
 });

然后我尝试为上述 id 插入数据。

app.post('/feeds',function(req,res) {
    var _id         = req.body._id;
    var title       = req.body.title;
    var description = req.body.description;
    var latitude    = req.body.latitude;
    var longitude   = req.body.longitude;
    db.user.update(
        {_id:_id },
          {$push : {
              feeds:[{
                title: title,
                description: description,
                latitude:latitude,
                longitude:longitude

              }]
          }
        }
    ,function (err,result) {
            console.log(err);
                if (err) {
                    res.json({"success": '0', "message": "Error adding data"});
                }
                else {
                    res.json({"success": '1', "message": "Data added"});
                }
        });

});

没有显示错误,但没有发生数据插入。

【问题讨论】:

    标签: node.js mongodb mongoose mongoose-schema


    【解决方案1】:

    你的经纬度应该转换成数字:

    var latitude    = Number(req.body.latitude);
    var longitude   = Number(req.body.longitude);

    【讨论】:

    • 经纬度没有问题。
    • 检查它们的类型
    • 哦,对不起..现在我改变了。但仍然没有插入数据。
    • 尝试从推送中的提要中删除数组符号:$push: {feeds: {title...}}
    • 试试find({_id: _id})。你有什么文件吗?
    猜你喜欢
    • 2015-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2014-04-12
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多