我贴出了以下问题,答案是正确的:
MongoDB - Updating only $ref from DBRef field type
尽管如此,当我像这样执行find方法时:
{ "codeId“:{ "$ref”:“代码”,"$id“:{ "$oid”:"4ff1c08c6ef25616ce21c4b6"}}
文件没有归还..。知道为什么吗?
更新后,文档按如下方式存储:
{ "_id“:{ "$oid”:"5097ae1cd3159eb52d05574c"},"codeId“:{ "$ref”:“代码”,"$id“:{ "$oid”:"4ff1c08c6ef25616ce21c4b6"}}
顺便说一句,如果我使用uMongo图形用户界面,在这个存储的文档上选择更新选项,并保存它,而不做任何更改,然后再次进行查找查询,查询将返回该文档.
谢谢
发布于 2014-08-01 00:34:03
这是一个明显的DBRef“调整”的东西.
作为一个临时的(但可能是正确的)修复,我设法解决了这个问题,执行这个javascript过程:
var cursor = db.menu.find( { "codeId.$ref" : "version" } );
while( cursor.hasNext() )
{
var document = cursor.next();
db.menu.update(
document,
{ $set: {"codeId" : DBRef("code", document.codeId.$id) }},
{ upsert: false, multi: true }
);
}不过,我不会认为这是实现我想要的最好的方法.任何其他解决方案,涉及较少的线?
https://stackoverflow.com/questions/25070367
复制相似问题