0

Rails 4.0 と MongoDB (Mongoid) を使用しており、ドキュメントを作成する次のコードがあります。

    lines.each do |l|
    Insert.create(:position => 0, :content => l, :schema_id => Moped::BSON::ObjectId.from_string("52419d2f80a9b88bb9000002"))
    end

これは正常に機能し、Mongo データベースで次の出力が得られます。

{
"_id": {
    "$oid": "5241ff1280a9b8f16e000057"
},
"position": "0",
"content": "blabla",
"schema_id": "52419d2f80a9b88bb9000002"

}

唯一の問題は、次のように実際の schema_id の前に "$oid": が必要なことです。

...
    "schema_id": {
    "$oid": "52419d2f80a9b88bb9000002"
}

そして、その「$oid」の後にコロンを手動で挿入する方法について本当に混乱しました....

あなたが私を助けることができれば素晴らしいだろう...

事前にt​​hx!!

4

2 に答える 2

0

私の疑惑はアーサーのものと同じで、はっきりさせようと思います。Ruby コードを再調査し、質問に記載していない Ruby コードで暗黙的にオブジェクト ID を文字列化していないことを確認する必要があります。

あなたの質問は、私が解読しようとすると混乱し、デバッグしようとするとおそらく混乱します。これは、あなたが Ruby で作業しているにもかかわらず、Ruby や mongo シェルからではなく、JSON でドキュメントを提供しているためです。これは、問題のコードとは別のコンテキストからデバッグしようとしていることを示唆しています。

Rails の標準的なテスト作成方法に従うことをお勧めします。ドキュメントを挿入して問題を再現し、Ruby を使用して問題のドキュメントをダンプするテストを作成してください。

于 2013-11-27T04:33:04.867 に答える