我有一个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输出
[]
为什么不把我的东西还给我?
最佳答案
这是因为id实际上不是一个字符串或整数,而是一个BSON::ObjectId
,所以您必须使用其中一个进行查询。
这应该工作
newsCollection.find("_id" => BSON::ObjectId(params[:id])).to_a.to_json
关于ruby - MongoDB返回空数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13185451/