MongoDB -更新$ref value无法查询新值

MongoDB - Updated $ref value unable to query new value

本文关键字:查询 新值 value ref 更新 MongoDB      更新时间:2023-09-26

我张贴了以下问题,并得到了正确的回答:

MongoDB -只更新$ref从DBRef字段类型

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

{"codeId":{$ ref":"代码","$ id ": {" $ oid":"4 ff1c08c6ef25616ce21c4b6}}}

文件没有返回…知道为什么吗?

更新后的文档存储如下:

{" _id ": {" $ oid":"5097 ae1cd3159eb52d05574c"},"codeId":{$ ref":"代码"、"$ id ": {" $ oid ": " 4 ff1c08c6ef25616ce21c4b6 "}}}

顺便说一下,使用uMongo GUI,如果我在这个存储的文档上选择Update选项,并保存它,不做任何更改,然后再次进行查找查询,该文档将由查询返回…

谢谢

这显然是那些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 }
    );
}
尽管如此,我不认为这是实现我想要的最好方法…还有其他更少线的解吗?