我是mongodb的新手,我尝试使用post方法通过html页面在数据库中插入数据。我在服务器端使用猫鼬。 这是我的代码。
`length<-`(vec[1:(which(vec=="remove")-1)],length(vec))
[1] "1" "2" NA "4" "NaN" "6" NA NA NA NA
每当我从localhost html页面插入数据时,它将成功插入,我从mongo.exe终端看到该消息,但出现错误
名称:“ MongoError”, 消息:“写入批处理大小必须在1到100000之间。进行了0次操作。”, 好的:0, errmsg:'写入批处理大小必须在1到100000之间。进行了0次操作。', 代码:16 codeName:“ InvalidLength”, [Symbol(mongoErrorContextSymbol)]:{}}
我在任何无法解决的地方进行搜索。到底是什么意思,请回答。答案 0 :(得分:3)
首先,我将在文件顶部和路由处理程序外部使用mongoose.connect()。
然后,当您使用user.save()时,您已经将数据保存到了数据库中,并且借助回调函数,您可以处理潜在的错误或显示一些成功消息。因此db.collection。(“ users”)。insertOne()有点多余。
也许尝试此代码? :
mongoose.connect('mongodb://localhost:27017/UserInfo');
var LoginInfoSchema = new mongoose.Schema({
_id : String,
user: String,
password: String
});
var user = mongoose.model('user',LoginInfoSchema);
app.post('/login', function(req, res) {
new user({
_id : req.body.email,
user : req.body.user,
password : req.body.password
}).save(function(err,doc) {
if(err) res.json(err);
res.redirect('/');
});
});
希望如此,干杯
答案 1 :(得分:0)
我花了最后两个星期来解决这个错误,并解决了这个问题。
我在码头和MongoDB官方驱动器上使用kotlin。
stackoverflow中的此链接是我得到的最接近的结果。最后,我错过了在“编码”功能结尾处调用documentCodec?.encode(writer, document, encoderContext)
的功能。
以下代码消除了错误:
override fun encode(writer: BsonWriter?, value: User?, encoderContext: EncoderContext?) {
document["_id"] = value?._id
document["name"] = value?.name
documentCodec?.encode(writer, document, encoderContext)
}`
答案 2 :(得分:-1)
我也陷入了同样的错误很长一段时间。上面的答案非常适合解决错误,但我也建议您检查发送到 MongoDB 连接函数的参数(对象和回调函数)的顺序。 MongoClient.connect(function(parameters))
发送时从控制器到模型
谢谢