MongoDB中的Swagger参考对象($ ref)

时间:2016-01-03 14:36:48

标签: json mongodb swagger

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

{"paths": {
            "/malts": {
                "get": {
                    "responses": {
                        "200": {
                            "schema": {
                                "$ref": "#/definitions/Malt"
                            }
                        }
                    }
            }
       }
    }

在MongoDB中存储此JSON对象似乎可行,但稍后更新时会出现以下错误:

  

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

这是否真的意味着JSON引用无法存储在MongoDB中,因为Mongo也使用$ ref作为their internal database reference

2 个答案:

答案 0 :(得分:0)

我相信这是你对mongodb驱动程序的使用。您使用的是哪个客户端库以及哪个版本?

答案 1 :(得分:0)

我在尝试在Mongo中存储json架构对象时遇到了同样的问题(使用$ ref键)。

通过使用这个非常简单的mongo对象转义库,我能够解决这个问题:https://www.npmjs.com/package/mongo-json-escape

简单示例:

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