2016-05-15 4 views
0

Im new to MEANと私は2人のコレクションユーザー&ダッシュボードを持っています。 Iはユーザに関連ダッシュボードMean:クエリ関連のコレクションが定義されていない 'findOne'を返します

Mongoの

db.users.find()シェル持っ - > { "_id":のObjectId( "573765e5889380a83581f421")、 "firstNameの": "ZX" を、 "lastName": "zx"、 "username": "zx"}

db.dashboard.find() - > {"_id":ObjectId( "573766af2affdfa8aaef44d4")、 "sentenceId":40、 "synced" :1、 "iscorrect": "NO"、 "USER_ID":のObjectId( "573765e5889380a83581f421")}

得られた結果は

ある

:我々はユーザがダッシュボード

db.dashboard.findOne({ のObjectId( "573765e5889380a83581f421") "USER_ID"})と関連していることが観察できるよう

{ "_id":のObjectId( "573766af2affdfa8aaef44d4")、 "sentenceId":40、 "同期":1、 "iscorrect": "NO"、 "USER_ID": のObjectId( "573765e5889380a83581f421")}

ここ

私が実装する方法がわからないmongoskinとイムを使用して

function getById(_id) { 
    var deferred = Q.defer(); 

    db.dashboard.findOne({user_id : _id}, function (err, user) { 
     console.log(user) 

     if (err) deferred.reject(err); 

     if (user) { 
      // return user (without hashed password) 
      deferred.resolve(_.omit(user, 'hash')); 
     } else { 
      // user not found 
      deferred.resolve(); 
     } 
    }); 

    return deferred.promise; 
} 

エラーメッセージTypeError: Cannot read property 'findOne' of undefined

Imは次のように急行jsの中でやろうとしてから

問題の開始db.dashboard.findOne in express

どれより良いアプローチもすべてのヘルプはあなたがdashboardコレクションを参照している方法が間違っているように思わ事前

答えて

1

おかげで高く評価され、提案することができます。

dbインスタンスをコレクションにバインドするか、collectionメソッドを使用することができます。 db.bind

function getById(_id) { 
    var deferred = Q.defer(); 

    db.bind('dashboard'); 
    db.dashboard.findOne({user_id : _id}, function (err, user) { 
     console.log(user) 

     if (err) deferred.reject(err); 

     if (user) { 
      // return user (without hashed password) 
      deferred.resolve(_.omit(user, 'hash')); 
     } else { 
      // user not found 
      deferred.resolve(); 
     } 
    }); 

    return deferred.promise; 
} 

db.collection付:返信用

function getById(_id) { 
    var deferred = Q.defer(); 

    var dashboard = db.collection('dashboard'); 
    dashboard.findOne({user_id : _id}, function (err, user) { 
     console.log(user) 

     if (err) deferred.reject(err); 

     if (user) { 
      // return user (without hashed password) 
      deferred.resolve(_.omit(user, 'hash')); 
     } else { 
      // user not found 
      deferred.resolve(); 
     } 
    }); 

    return deferred.promise; 
} 
+0

おかげで....私はvalue..Iを慰めるヌルとして結果を得るには、このDBのようなものを照会したかったです.dashboard.findOne({"user_id":ObjectId( "573765e5889380a83581f421")})..................... ExpressでObjectIdをどのように追加する必要がありますか? – Coeus

関連する問題