更新一行

时间:2019-05-20 08:35:28

标签: node.js mongodb

我不明白为什么这不起作用。

db.UserConnected.find( {} )

返回

{ "_id" : ObjectId("5ce262920cb02b4724dbdc0d"), "idUser" : null, "mode" : "Passager", "latitude" : 50, "longitude" : 60 }

因此,如您所见,我的UserConnected文档中有一个对象。

以以下代码的安全性插入他,将其记录为新用户。 现在我想做的是更新已经连接的用户...但是这不起作用,我也不知道为什么。

    socket.on('new', function(information) {
        console.log(information._id);
        user = {};
        //user already connected
        if(information._id !== undefined){
            console.log("update user");
            user.id = information._id;

            user.idUser = information.idUser;
            user.mode = information.mode;
            user.latitude = information.latitude;
            user.longitude = information.longitude;

            //Update the user connected here if that user exists
            collection.updateOne({"_id" : information._id}, {$set:user} );
            socket.emit('user_modified', user);


        }else{
            console.log("new user");
            //nouvel user
            user.idUser = information.idUser;
            user.mode = information.mode;
            user.latitude = information.latitude;
            user.longitude = information.longitude;

            collection.insertOne(user);
            console.log(user);
            socket.emit('user_inserted', user);
        }
    });

如果没有连接,我会像这样发送数据

var information = {"idProfile" : 1, "mode" : "Passager", "latitude": 50, "longitude" : 60 };

如果我已连接,请点击

var information = { "_id" : "ObjectId('5ce262920cb02b4724dbdc0d')", "idProfile" : 1, "mode" : "Passager", "latitude": 500, "longitude" : 60 };

我可能会错过一些非常简单的东西,但找不到。

编辑:当我尝试查询时,他也找不到匹配项

db.UserConnected.updateOne( {"_id": "ObjectId('5ce262920cb02b4724dbdc0d')" }, {$set : {"longitude": 70}} )

{ "acknowledged" : true, "matchedCount" : 0, "modifiedCount" : 0 }

================================================ ==========

我无法回答我不知道为什么的问题……无论如何,这就是解决方案:

将数据作为简单字符串发送到客户端"5ce262920cb02b4724dbdc0d"

然后将其用作过滤器

{"_id" : ObjectID(information._id)}

var ObjectID = require('mongodb').ObjectID;

0 个答案:

没有答案