Json MongoDB中的招摇过市引用对象($ref)

Json MongoDB中的招摇过市引用对象($ref),json,mongodb,swagger,Json,Mongodb,Swagger,Swagger定义可以包含JSON引用($ref),例如: {"paths": { "/malts": { "get": { "responses": { "200": { "schema": { "$ref": "#/definiti

Swagger定义可以包含JSON引用($ref),例如:

{"paths": {
            "/malts": {
                "get": {
                    "responses": {
                        "200": {
                            "schema": {
                                "$ref": "#/definitions/Malt"
                            }
                        }
                    }
            }
       }
    }
将此JSON对象存储在MongoDB中似乎是可行的,但稍后更新时,会出现以下错误:

MongoError:DBRef$ref字段后面必须跟一个$id字段


这是否真的意味着不能将JSON引用存储在MongoDB中,因为Mongo也使用$ref进行存储?

我相信这是您使用MongoDB驱动程序的原因。您使用的是什么客户端库和哪个版本?

我在Mongo中存储json模式对象(使用$ref键)时遇到了同样的问题

我通过使用这个非常简单的mongo对象转义库解决了这个问题:

简单的例子:

var mje = require('mongo-json-escape');
var safeToStoreObject = mje.escape({"hello$world":"hello"});
var readyToUseObject = mje.unescape({"hello\uFF04world":"hello"});

我使用的是最新版本的mongo express(),在从mongo中提取相关项时,请务必小心运行unescape进程。转义字符看起来非常接近美元符号(他们使用“U+FF04:FULLWIDTH美元符号”作为转义字符,当然,它看起来很像美元符号)。在MongoDB文档中,它表示字段不能以美元符号“$”开头,也不能包含句点。“: