1
我有一个使用最新版本的MongoDB和Mongoid 2.2的Rails 3.0.9项目。Rails 3在一个MongoDB集合中的两个“id”字段?
我导入的CSV与“ID”字段到一个名为学院MongoDB的集合,产生一个集合中,像这样:
{ "_id" : ObjectID("abc123"), "id" : ######, ... }
观察:
- 演出动作导致一个网址利用ObjectID
- 在index.html.erb中显示'college.id'显示ObjectID
问题:
- 如何使用原来的“ID”字段作为参数
- 为“ID”,由MongoDB的保留,这意味着我需要 学院集合中重命名“ID”字段(也许是为了“编码”) - 如果是这样,怎么办?
谢谢!
更新
答:
db.colleges.update({ "name" : { $exists : true } } , { $rename : { "id" : "code" } }, false, true)
我用 “名”,因为这是一个领域,我可以检查是否存在。
更新命令需要一个附加的闭括号}(在任何重要的数据运行之前明显测试此),但即使有了它,蒙戈控制台返回一个语法错误:'无效的属性ID(壳):1 ' – Adam
也许它与'db.collection.update(criteria,objNew,upsert,multi)'的upsert和多部分有关?我不知道。我不知道这些部件在功能上做了什么。 – Adam
集合名称被复数化为'db.colleges.update({“name”:{$ exists:true}},{$ rename:{“id”:“code”}},false,true);'我用“名字”,因为那是另一个领域,我可以检查存在,但基本上 - 你是对的!非常感谢! – Adam