0

データベースにSinatra、backbone.js、mongodbを使用するこのチュートリアルで遊んでいます。mongoを使うのは初めてです。私が理解している限り、アプリはローカルストレージとデータベースの両方を使用します。データベースへのこれらのルートがあります。たとえば、これらのルートがあります

get '/api/:thing' do
  DB.collection(params[:thing]).find.to_a.map{|t| from_bson_id(t)}.to_json
end

get '/api/:thing/:id' do
  from_bson_id(DB.collection(params[:thing]).find_one(to_bson_id(params[:id]))).to_json
end

post '/api/:thing' do
  oid = DB.collection(params[:thing]).insert(JSON.parse(request.body.read.to_s))
  "{\"_id\": \"#{oid.to_s}\"}"
end

サーバーの電源をオフにしてからオンにした後、サーバーでデータベースルートからデータを取得しているのを見ることができました

127.0.0.1 --- [17 / Sep / 2012 08:21:58] "GET / api / todos HTTP / 1.1" 200 430 0.0033

私の質問は、データがデータベースにあるかどうかをmongoシェル内からどのように確認できるかということです。

モンゴシェルを始めました

  ./bin/mongo  

データベースを選択しました 'use mydb'

次に、ドキュメント(http://www.mongodb.org/display/DOCS/Tutorial)を見て、次のようなコマンドを試しました。

> var cursor = db.things.find();
> while (cursor.hasNext()) printjson(cursor.next());

しかし、彼らは何も返しませんでした。

4

1 に答える 1

1

データを読み取るためだけにカーソルを作成する必要はありません。

% mongo
MongoDB shell version: 2.2.0
connecting to: test
> use mydb
switched to db mydb
> show collections
system.indexes
things
> db.things.find()
{ "_id" : ObjectId("50569a52c0ba23837b5dd811"), "name" : "TV set" }
{ "_id" : ObjectId("50569a5bc0ba23837b5dd812"), "name" : "car" }

何も表示されない場合db.things.find()は、そのコレクションにデータがありません (または、名前を間違って入力したか、間違ったデータベースを使用しています)。

于 2012-09-17T03:36:09.037 に答える