Mongoose: DBRefの問題-間違った実装?

作成日 2014年01月28日  ·  3コメント  ·  ソース: Automattic/mongoose

こんにちは、

何かを理解するのに問題があるか、バグがあります。

はじめましょう。 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を保存しないようなものです。

new feature

最も参考になるコメント

この問題に関するMongoose開発者からの入力はまだありませんか? これは繰り返し発生する問題であり、同じデータベースに複数のドライバーが書き込みおよび読み取りを行っている場合に発生し続けます。

NodeドライバーはDBRefをサポートしていますが、MongooseがまだDBRefをサポートしていないのは奇妙なことです。

全てのコメント3件

+1
doctrine mongodbodmを使用するphpアプリケーションで同じ問題に直面しています。 現在、mongodb DBRefsオブジェクトは参照の保存に使用されていないため、既存のdbをmongooseで使用することはできません。
たぶん、別のスキーマタイプ(Schema.DBRef?)を追加する必要がありますか?
これにより、指定された情報を含むドキュメントが読み込まれます。

この問題に関するMongoose開発者からの入力はまだありませんか? これは繰り返し発生する問題であり、同じデータベースに複数のドライバーが書き込みおよび読み取りを行っている場合に発生し続けます。

NodeドライバーはDBRefをサポートしていますが、MongooseがまだDBRefをサポートしていないのは奇妙なことです。

MongoDBのドキュメントではdbrefを使用しないことを推奨しているため、populateでDBRefをサポートすることは実際には優先度が高くありません。 いつでも自分でクエリを実行できます。

このページは役に立ちましたか?
0 / 5 - 0 評価