我在那里,我创造了的教育嵌入文档web应用程序。这份工作文件看起来像这样:MongoDB的嵌入文档BSON ID
"educations" : [
{
"school" : "Brandywine High School",
"major" : "Testingasdf",
"grad_year" : ISODate("1979-01-01T00:00:00Z"),
"school_type" : "Graduate",
"_id" : ObjectId("4fb26c9ce5be08208b000ce4")
}
],
"email" : "[email protected]",
教育杂凑具有工作的细节。我注意到,如果我没有ID创建哈希:
User.collection.update(
{ _id: @user.id },
{ :$push => { educations: education } },
{ safe: true }
)
,我查询从Rails的控制台教育,ID每次都会改变:
irb(main):004:0> User.brandon.educations.map(&:id)
=> [BSON::ObjectId('4fb26e13e5be082384000007')]
irb(main):005:0> User.brandon.educations.map(&:id)
=> [BSON::ObjectId('4fb26e13e5be082384000009')]
但是,如果我这样做:
User.collection.update(
{ _id: @user.id },
{ :$push => { educations: BSON::ObjectId.create_pk(education) } },
{ safe: true }
)
每次从控制台查询时ID都相同。因此,我无法参考教育来编辑浏览器中的嵌入式文档。
难道我一直都当我创建一个嵌入式文件提供一个BSON ID?
您可以编辑您的问题,以显示整个样本文档? “这个ID每次都会改变”是什么意思?你能举一个这样的例子吗? –
更新了文档和用于更新的方法。 – user577808