我以为我可以读到这个解决方案,但我看不出我做错了什么。
这是我的模特:
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');
这是我尝试插入或插入一个
的地方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变为空。
有什么想法吗?
答案 0 :(得分:3)
您正在寻找的方法是create
:
inspectTable.create(
{
"property" : inspectRecord.property,
"room" : inspectRecord.room,
"item" : inspectRecord.item
}, ...
但是,_id: Object
的架构定义可能有误。只需将_id
的任何定义保留在您的架构之外,它就会使用默认的ObjectId
,这可能是您想要的。
答案 1 :(得分:2)
你可以试试这个
var insert_table = new inspectTable(
{
"property" : inspectRecord.property,
"room" : inspectRecord.room,
"item" : inspectRecord.item
});
insert_table.save(function (err, res) {
if (err) { return reject({err:true, err:"addInspect ERROR" + err}) }
else {
show("=====RESOLVE addInspect=====")
return resolve();
}
});