这是我关于洪流索引器的其他 MongoDB 问题的一种后续。
我正在制作一个开源 torrent 索引器(本质上就像一个迷你 TPB),并且目前为后端提供 SQLite 和 MongoDB。
但是,我在其中的 MongoDB 部分遇到了麻烦。在 Sinatra 中,我在尝试上传种子或搜索种子时得到。
在上传时,需要标记 torrent - 它在这里失败了。添加标签的代码如下:
def add_tag(tag)
if $sqlite
unless tag_exists? tag
$db.execute("insert into #{$tag_table} values ( ? )", tag)
end
id = $db.execute("select oid from #{$tag_table} where tag = ?", tag)
return id[0]
elsif $mongo
unless tag_exists? tag
$tag.insert({:tag => tag})
end
return $tag.find({:tag => tag})[:_id] #this is the line it presumably crashes on
end
end
它到达第 105 行(如上所述),然后失败。这是怎么回事?此外,作为仅供参考,随着解决方案的出现,这可能会变成其他一些问题。
谢谢!
编辑
因此[:_id]
,我没有将标签结果返回为 ,而是将 elsif 中的块更改为:
id = $tag.find({:tag => tag})
puts id.inspect
return id
仍然出现错误。您可以在http://torrent.hypeno.de上查看演示,在http://github.com/tekknolagi/indexer/上查看源代码