当用户按id存在时,Mongoose/mongodb返回null
我有麻烦,我的用户id(又名mongodb创建的id)不允许我搜索 这是我的用户当用户按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"
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不起作用。我认为这不是你查询的问题。我猜可能是其他原因,可能是您查询的方式、连接问题、函数问题或函数调用问题等等。您的整个代码在这里调试并不困难,但我确实检查了结果,它是否为空?