【发布时间】:2019-07-17 18:23:08
【问题描述】:
猫鼬存储和&
我在猫鼬中有一个架构,我正在使用下面的保存方法代码在集合中插入数据
// Schema
var userSchema = new Schema({
payLoad: []
})
// in controller code
var userJson = {
payLoad: [JSON.stringify(req.body)]
}
var User = require('../models/userModel')
new User(userJson).save().then(function (res) {
})
它将数据存储在集合中,但是当 & 存在时,它会转换为 & 例如,如果有效负载有数据 Brothers & Sons 则在 mongodb 中它存储 Brothers & Sons
【问题讨论】:
-
你确定是Mongoose做的吗?!我发现
req.body更有可能已经包含&。 -
是的,是 Mongoose 做的。
-
你已经验证了这个如何?是否可以通过简单的
new User({ payLoad: [{ foo: '&bar' }] }).save()重现? -
我已经为 Mongoose 开启了调试,它显示在我的终端和 model.insertOne() 内的有效负载中,在 insertOne 方法中它正在传递 &
-
所以在 .save() 之前,它会说 '&',然后在 mongoose 的调试日志中会说 '&'?
标签: node.js mongodb mongoose mongoose-schema