こんにちは、
何かを理解するのに問題があるか、バグがあります。
はじめましょう。 DBRefに関するドキュメントは次のとおりです。
http://docs.mongodb.org/manual/reference/database-references/#dbrefs
彼らは、参照付きのドキュメントの構造を次のように記述します。
{
"_id" : ObjectId("5126bbf64aed4daf9e2ab771"),
// .. application fields
"creator" : {
"$ref" : "creators",
"$id" : ObjectId("5126bc054aed4daf9e2ab772"),
"$db" : "users"
}
}
次に、この例(example1)を見てみましょう。
https://gist.github.com/hastebrot/1170907
このコードを実行すると、次のようなものがあります。
話:
"title": "A man who cooked Nintendo",
"_creator": {
"$oid": "52e7dcea3d9cd59c13702e3d"
},
"_id": {
"$oid": "52e7dceb3d9cd59c13702e3e"
},
"fans": [],
"__v": 0
人々:
"name": "Aaron",
"age": 100,
"_id": {
"$oid": "52e7dcea3d9cd59c13702e3d"
},
"stories": [],
"__v": 0
私たちのチームには、MongoDB用のライブラリを使用するJavaで記述された小さなアプリケーションがありますが、このライブラリはMongoDBドキュメントのようにデータを保存します。
....//other fields
"user": {
"$ref": "users",
"$id": {
"$oid": "52c6c497c08e6fcf37000001"
}
}
マングースの実装でのみ機能するように見えるため、データを入力できません。
私が間違っている場合は訂正してください。しかし、私にとっては、ドキュメントに記載されているようにDBRefを保存しないようなものです。
+1
doctrine mongodbodmを使用するphpアプリケーションで同じ問題に直面しています。 現在、mongodb DBRefsオブジェクトは参照の保存に使用されていないため、既存のdbをmongooseで使用することはできません。
たぶん、別のスキーマタイプ(Schema.DBRef?)を追加する必要がありますか?
これにより、指定された情報を含むドキュメントが読み込まれます。
この問題に関するMongoose開発者からの入力はまだありませんか? これは繰り返し発生する問題であり、同じデータベースに複数のドライバーが書き込みおよび読み取りを行っている場合に発生し続けます。
NodeドライバーはDBRefをサポートしていますが、MongooseがまだDBRefをサポートしていないのは奇妙なことです。
MongoDBのドキュメントではdbrefを使用しないことを推奨しているため、populateでDBRefをサポートすることは実際には優先度が高くありません。 いつでも自分でクエリを実行できます。
最も参考になるコメント
この問題に関するMongoose開発者からの入力はまだありませんか? これは繰り返し発生する問題であり、同じデータベースに複数のドライバーが書き込みおよび読み取りを行っている場合に発生し続けます。
NodeドライバーはDBRefをサポートしていますが、MongooseがまだDBRefをサポートしていないのは奇妙なことです。