【问题标题】:MongoDB returns empty arrayMongoDB 返回空数组
【发布时间】:2012-10-22 12:50:08
【问题描述】:

我有一个 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 输出这个

[]

为什么它不把我的物品还给我?

【问题讨论】:

    标签: ruby mongodb sinatra


    【解决方案1】:

    这是因为 id 实际上不是字符串或整数,而是BSON::ObjectId,所以您必须使用其中一个进行查询。

    这应该可以工作

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-27
      • 2019-04-15
      • 2017-09-12
      • 2016-03-24
      • 2015-07-10
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多