Json MongoDB中的招摇过市引用对象($ref)
Swagger定义可以包含JSON引用($ref),例如:Json MongoDB中的招摇过市引用对象($ref),json,mongodb,swagger,Json,Mongodb,Swagger,Swagger定义可以包含JSON引用($ref),例如: {"paths": { "/malts": { "get": { "responses": { "200": { "schema": { "$ref": "#/definiti
{"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文档中,它表示字段不能以美元符号“$”开头,也不能包含句点。“: