/*first Table*/
DBCollection coll = db.getCollection("orgmembers");
/*second table*/
DBObject lookupFields = new BasicDBObject("from", "orgcenters");
lookupFields.put("localField", "mappings.centerId");
lookupFields.put("foreignField", "_id");
lookupFields.put("as", "collegeDetails");
DBObject lookup = new BasicDBObject("$lookup", lookupFields);
orgcentersスキーマ_id foriegnキーとは比較にならないルックアップ
{"_id" : ObjectId("5496d0a50cf2abd6b103b1a2"), "code" : "CEN-DVG", "name" : "Davangere"}
orgmemberスキーマのMongoDB内検索がforiegnキー_id
とは比較にならない{ "dob" : "1989-01-13",
"firstName" : "Sandeep",
"mappings" : [ { "programId" : "5496d0cd0cf2abd6b103b1a6", "centerId" : "5496d0a50cf2abd6b103b1a2"}]
}
orgcentersテーブルは、{ "_idを" のObjectId( "5496d0a50cf2abd6b103b1a2")、 "コード": "CEN-DVG"、 "名前": "Davangere"、 }有する – aksy91
orgmemberテーブルは、{ "DOB" を有します: "1989年1月13日"、 "firstNameの": "サンディープ"、 "マッピング":[{ "プログラムID": "5496d0cd0cf2abd6b103b1a6"、 "centerId": "5496d0a50cf2abd6b103b1a2"}]}} – aksy91
でもあなたのコードは不完全ですが、私はあなたがこれらのコレクションを集約し、正しく行うかどうかを大雑把に推測できるだけです。間違いがすぐに分かります:orgmemberのcenterIdは文字列ですが、orgcenの_id tersはObjectIdです。これは一致しません - あなたは同じデータ型を使用する必要があります。 – mtj