0

十分に単純な状況。以前の開発者からの情報を集めた MongoDB データベースがあります。ただし、事前に入手したモデルに関する情報は限られており、元のモデル クラスにアクセスすることはできません。次のように、MongoDBドライバーをいじって、MongoDBドライバーに関する詳細情報を取得しました(最終的にオブジェクトをマップアウトするためにMongoIDを使用する必要があります)。

#The flow is as follows
  #Connection
  #Databases
  #Database
  #Collection
  #Hash Info

  #Setup the connection. you can supply attributes in the form of ("db",portno) but most of the time it will pick up the defaults
  conn = Mongo::Connection.new

  #Database info
  mongodbinfo =conn.database_names
  conn.database_info.each { |info| puts info.inspect }


  db = conn.db("db_name_here")
  db.collection_names.each { |collection| puts collection.inspect  }


  collection = db.collection("model_name_here")
  puts collection.inspect

  collection.find.each { |row|
    puts row.inspect
    puts row.class
  }

各行は個別のオブジェクトであり、MongoDB が動作するため、各オブジェクト/ドキュメントは BSON オブジェクトです。

要するに、mongoID を使用して BSON をモデルに逆シリアル化するにはどうすればよいですか?

Ps 新しい mongoDB を理解しようとしている場合は、上記のコードを自由に使用してください。IMHO のデバッグに便利です。

4

1 に答える 1

2

だからこれは破綻した。

最後に、Mondb ドライバーを使用して、クエリでデータを手動で引き出しました。ただし、オブジェクトの作成ははるかに困難でした。

ORM を使用する場合は、実際のモデルを使用することをお勧めします。

于 2012-06-15T11:22:21.863 に答える