我以为我可以阅读这个解决方案,但我看不出我做错了什么。
这是我的模型:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var inspectSchema = new Schema({
_id: Object, // Mongo ID
property: String, // Property ID
room: String, // The room Name
item: Array // The Items text
});
module.exports = mongoose.model('inspectModel', inspectSchema, 'inspect');
这是我尝试插入或 insertOne 的地方
var inspectModel = require('../../models/inspectModel');
var inspectTable = mongoose.model('inspectModel');
inspectTable.insert(
{
"property" : inspectRecord.property,
"room" : inspectRecord.room,
"item" : inspectRecord.item
},
function (err, res) {
if (err) { return reject({err:true, err:"addInspect ERROR" + err}) }
else {
show("=====RESOLVE addInspect=====")
return resolve();
}
})
我试过了
inspectTable.insert
inspectModel.insert
inspectTable.insertOne
inspectModel.insertOne
无论我总是得到什么
TypeError: inspectTable.insert is not a function
我也尝试使用 { upsert: true } 进行更新,但随后 mongo ID 变为 null。
有什么想法吗?
最佳答案
您正在寻找的方法是 create
:
inspectTable.create(
{
"property" : inspectRecord.property,
"room" : inspectRecord.room,
"item" : inspectRecord.item
}, ...
但是,您的 _id: Object
架构定义可能是错误的。只需将 _id
的任何定义保留在架构之外,它将使用默认的 ObjectId
,这可能就是您想要的。
关于node.js - insert 和 insertOne 不是函数并且 update 不创建 mongo ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48871951/