

例えば  
scoreコレクションに

[code]

    {
      "_id" : ObjectId("50f5379785ac77daf3dd4bfd"),
      "user" : {
        "$ref" : "collection_user",
        "$id" : ObjectId("50f5370e85ac77daf3dd4bfb")
      },
      "score" : 100
    }
    
[/code]

userコレクションに

[code]

    {
      "_id" : ObjectId("50f5370e85ac77daf3dd4bfb"),
      "name" : "User1",
      "No"   : 1111
    }
    
[/code]

のようなデータが存在するとき、scoreコレクションにuserコレクションを外部結合のようなことをして、nameで検索条件を指定したり、ソートの条件にしたいと考えています。

mongoDB3.6以上であれば、lookupを使えばなんとなく行けそうな雰囲気はありますが、2.6の場合、実現する方法はないでしょうか？


CC BY-SA 4.0
2018-08-08T15:36:49.677
47357
2018-08-09T23:38:55.697
2018-08-08T17:36:39.653
3060
29651
question
mongodb
MongoDB2.6でのDBRef条件指定検索


MongoDB v3.2以前にデータベースサーバ側できませんでした。アプリケーション側での結合は必要です。

一つのアプリケーションのpseudoコードのイメージ：

[code]

    users_rs = db.user.find({name: xxxxxx})
    user_id_list = []
    for doc in users_rs:
      user_id_list.append(doc._id)
    scores_rs = db.scores.find({"user.$id": {$in: user_id_list}})
    //scoresとusersのデータを合併して
    //それあとソーティング
    
[/code]


CC BY-SA 4.0
2018-08-09T23:38:55.697
47395
2018-08-09T23:38:55.697
113
47357
answer