2017-09-03 4 views
0

私はmongoDBに2つのコレクションを持っています。ユーザーとソーシャル(ユーザー - ユーザーはウェブサイトから登録し、ソーシャル - ソーシャルメディアからログオンしたユーザー)、これらの2つのコレクションから1人のユーザーを検索したいと思いますか?これは可能ですか?私は(Users&&Socials).findOne({...})を使用しようとしましたが、これは愚かな考えです。mongodbの2つのコレクションから1人のユーザーを探します。

+0

これはお勧めできません。代わりに1つのコレクションを持ち、どちらがどれであるかを識別するためにdiscriminator属性を使用します。実際、マングースには、同じコレクション内に異なるファーストクラスのモデルを格納できるような目的のための "多態性"メカニズムがあります。したがって、もちろん独自のスキーマを持ちます。 [Mongoose discriminators](http://mongoosejs.com/docs/discriminators.html)。 「ビュー」と同じコレクション内の複数のモデルと、両方に共通の属性を照会できる単一のモデル。すなわち "username" –

答えて

0

いいえ、1つのクエリでは実行できません。

2つのクエリを別々に実行する必要があります。

User.findOne({ ... }, function (err, user) { 
    if (err) { 
     // handle error 
    } else if (!user) { 
     // handle no user 
    } else { 
     Social.findOne({ ... }, function (err, social) { 
      if (err) { 
       // handle error 
      } else if (!social) { 
       // handle no social 
      } else { 
       // both user and social exist 
      } 
     }); 
    } 
}); 
関連する問題