Javascript MongoDB-更新的$ref值无法查询新值

Javascript MongoDB-更新的$ref值无法查询新值,javascript,mongodb,Javascript,Mongodb,我发布了以下问题,这些问题的答案是正确的: 尽管如此,当我像这样执行find方法时: {“codeId”:{“$ref”:“code”,“$id”:{“$oid”: “4ff1c08c6ef25616ce21c4b6”}} 文档未返回。。。知道为什么吗 更新后,文档的存储方式如下: {“_id”:{“$oid”:“5097ae1cd3159eb52d05574c”},“codeId”:{“$ref” :“code”,“$id”:{“$oid”:“4ff1c08c6ef25616ce21c4b6

我发布了以下问题,这些问题的答案是正确的:

尽管如此,当我像这样执行find方法时:

{“codeId”:{“$ref”:“code”,“$id”:{“$oid”: “4ff1c08c6ef25616ce21c4b6”}}

文档未返回。。。知道为什么吗

更新后,文档的存储方式如下:

{“_id”:{“$oid”:“5097ae1cd3159eb52d05574c”},“codeId”:{“$ref” :“code”,“$id”:{“$oid”:“4ff1c08c6ef25616ce21c4b6”}

顺便说一句,使用uMongo GUI,如果我在存储的文档上选择更新选项并保存它,而不做任何更改,然后再次进行查找查询,那么查询将返回文档


谢谢

这显然是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 }
    );
}
但是,我不会认为这是实现我想要的最好的方式…是否有其他涉及较少线路的解决方案