【发布时间】:2017-10-10 17:51:17
【问题描述】:
我的用户 ID(又名 _id 由 mongodb 创建)无法让我搜索。
这是我的用户
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
但是每个结果都是 null/false,怎么会呢?
【问题讨论】:
-
您查询中的
{ fields: {} }是什么?你想在这里做什么? -
users.findone 函数调用它。 mongoose 字段就是它的查询方式。我唯一尝试的是根据 id 获取用户。
-
试试这个
users.findOne({ _id: ObjectId("5912073cd87a401dd196a820") })是否有效? -
@node_saini 不起作用。
-
我不认为这是您查询的问题。我想这可能是您查询的方式或某些连接问题或您的函数问题或函数调用问题或其他问题。您的整个代码在这里并不难调试。