2012-11-01 2 views
1

나는이MongoDB를 빈 배열을 반환

(읽는 즐거움을위한 포맷)

require 'mongo' 
require 'json' 

connection = Mongo::Connection.new 
db = connection.db("salemDB") 
db = Mongo::Connection.new.db("salemDB") 
newsCollection = db["news"] 

require 'sinatra' 
set:port, 2222 
get '/' do 
    redirect 'index.html' 
end 

get "/checkMail" do 
    newsCollection.find_one({}, {}).to_a.to_json 
end 

get "/:id" do 
newsCollection.find("_id" => params[:id]).to_a.to_json 
end 

/checkmail 출력

[ 
    [ 
     "_id", 
     { 
     "$oid":"50880c8564a15e2631000001" 
     } 
    ], 
    [ 
     "date", 
     "2012-10-24T17:42:54+02:00" 
    ], 
    [ 
     "subject", 
     "This is a piece of news" 
    ] 
] 

/50880c8564a15e2631000001 웹 페이지에 기록을 뱉어 MongoDB를이 출력 함

[] 

왜 내 개체를 돌려주지 않습니까?

답변

3

사실 ID가 문자열 또는 정수가 아니기 때문에 BSON::ObjectId이므로 그 중 하나를 사용하여 쿼리해야합니다.

이 작동합니다

newsCollection.find("_id" => BSON::ObjectId(params[:id])).to_a.to_json