当用户按id存在时,Mongoose/mongodb返回null

当用户按id存在时,Mongoose/mongodb返回null,mongodb,mongoose,database,Mongodb,Mongoose,Database,我有麻烦,我的用户id(又名mongodb创建的id)不允许我搜索 这是我的用户 db.users.find({}) { "_id" : ObjectId("5912073cd87a401dd196a820"), "password" : "$2a$10$Sj/bxhSzeL8xzZYn8Vl71OjrG9Ayly9ueDi2O1iDwi7N4vYyZGWKi", "username" : "malin", "inFamily" : false, "bank" : 500, "defence"

我有麻烦,我的用户id(又名mongodb创建的id)不允许我搜索

这是我的用户

db.users.find({})
{ "_id" : ObjectId("5912073cd87a401dd196a820"), "password" : "$2a$10$Sj/bxhSzeL8xzZYn8Vl71OjrG9Ayly9ueDi2O1iDwi7N4vYyZGWKi", "username" : "malin", "inFamily" : false, "bank" : 500, "defence" : 1, "attack" : 1, "cash" : -494055600, "xp" : 0, "rank" : 1, "bullets" : 0, "location" : 1, "permission" : 0, "health" : 0, "__v" : 0 }
如图所示,它的id为
5912073cd87a401dd196a820

这是我一直在调用的函数

function userDetails(userid) {
    return new Promise(function(resolve, reject) {
                console.log("search: " + userid);
        // Users.findById(userid, function (result) {
Users.findOne({_id: userid},function(result) { 
            console.log("search done");
            console.log(result);
            return resolve(result);
        });
    });
}
我在我的网站上到处使用这个功能,在一些方面它是有效的,而在另一些方面它不会。 例如当组件1调用它时,它工作;当组件2尝试时,它失败

当findByid或findOne失败时,它们都不起作用

以下是在我的某个组件上运行的查询“我的站点”失败:

  search: 5912073cd87a401dd196a820
    Mongoose: users.findOne({ _id: ObjectId("5912073cd87a401dd196a820") }, { fields: {} })
    logging /api/gameapi?action=getcrimemembers
    navigate: false
    search done
    null

但是每一个结果都是空的/假的,为什么呢?

使用这个,它必须工作良好。Mongoose函数已返回promise,因此不需要将其包装到函数中:

Users.findOne({_id: userid}).then(result=>{...}).catch(err=>{...})

查询中的
{fields:{}}
是什么?你想在这里做什么?users.findone函数调用它。mongoose字段正是其查询的方式。我唯一要做的就是根据id获取用户。试试这个简单的
users.findOne({u id:ObjectId(“5912073cd87a401dd196a820”)}
它是否有效?@node\u saini不起作用。我认为这不是你查询的问题。我猜可能是其他原因,可能是您查询的方式、连接问题、函数问题或函数调用问题等等。您的整个代码在这里调试并不困难,但我确实检查了结果,它是否为空?