2017-05-11 10 views
0

私のユーザーID(mongodbによって作成された別名_id)が検索できません。 ID 5912073cd87a401dd196a820との1、ここで見られるように、ここでユーザーがidで存在する場合、mongoose/mongodbがnullを返します

は私のユーザー

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 } 

です。

ここではいつも呼び出す関数があります。私はその作品は、文句を言わない他の人にそれをいくつかに、すべて自分のサイト上の機能を使用し

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の場合、どのように来ますか?

+0

クエリではこの{{fields:{}}は何ですか?あなたはここで何をしようとしていますか? –

+0

users.findone関数がそれを呼び出します。 mongooseフィールドは、そのクエリの方法です。私が試している唯一の事は、IDに基づいてユーザーを取得することです。 – maria

+0

シンプルなこの 'users.findOne({_id:ObjectId(" 5912073cd87a401dd196a820 ")})'それが動作するかどうかを試してみませんか? –

答えて

0

これを使用してください。正常に動作する必要があります。 Mongoose関数は既に返されているので、関数でラップする必要はありません。

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

しかし、私は結果とそのヌルをチェックするのですか? – maria

+0

申し訳ありませんが、私はあなたが何を意味するかはっきりしていません – Sergaros

関連する問題