Javascript MongoDB-更新的$ref值无法查询新值
我发布了以下问题,这些问题的答案是正确的: 尽管如此,当我像这样执行find方法时: {“codeId”:{“$ref”:“code”,“$id”:{“$oid”: “4ff1c08c6ef25616ce21c4b6”}} 文档未返回。。。知道为什么吗 更新后,文档的存储方式如下: {“_id”:{“$oid”:“5097ae1cd3159eb52d05574c”},“codeId”:{“$ref” :“code”,“$id”:{“$oid”:“4ff1c08c6ef25616ce21c4b6”} 顺便说一句,使用uMongo GUI,如果我在存储的文档上选择更新选项并保存它,而不做任何更改,然后再次进行查找查询,那么查询将返回文档Javascript MongoDB-更新的$ref值无法查询新值,javascript,mongodb,Javascript,Mongodb,我发布了以下问题,这些问题的答案是正确的: 尽管如此,当我像这样执行find方法时: {“codeId”:{“$ref”:“code”,“$id”:{“$oid”: “4ff1c08c6ef25616ce21c4b6”}} 文档未返回。。。知道为什么吗 更新后,文档的存储方式如下: {“_id”:{“$oid”:“5097ae1cd3159eb52d05574c”},“codeId”:{“$ref” :“code”,“$id”:{“$oid”:“4ff1c08c6ef25616ce21c4b6
谢谢这显然是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 }
);
}
但是,我不会认为这是实现我想要的最好的方式…是否有其他涉及较少线路的解决方案