mongoose不能将文档保存到一个特定集合的数据库中
我有一个function
function generateInvoice(data) { const cdate = new moment.tz('GMT').toDate(); let invoiceData = { date: cdate, paidStatus: true, amount: data.amount, userId: data.userId } if (data.planName && data.planTypeName) { invoiceData.item = `${data.planName} - ${data.planTypeName}` invoiceData.quantity = data.seats || data.slots; } if (data.credits) { invoiceData.item = 'Credits'; invoiceData.quantity = data.credits; } return Invoice.create(invoiceData).then((data)=>{ data.invoiceId = data._id.toString().slice(-5); return data.save().then((data)=>{console.log(data); return data.invoiceId}).catch((err)=>{ throw new ErroWithStatusCode(500, 'Sorry, we seem to be facing some issue right now. Please, try again later.', err); }) }) }
这就是我如何使用这个function
return generateInvoice(invoiceData).then((data)=>{ newBooking.orderId = data; id = data; return newBooking.save().then((booking) => { return booking; }).catch((err) => { throw new ErroWithStatusCode(500, 'Sorry, we are facing some issue right now. Please try again later.') }) });
问题是我无法在我的invoices
集合中findinvoiceData
。 then
块的callback函数中的数据就是文档,但我在发票集合中找不到相同的文档。
所有的承诺正在得到解决。 它不落在catch块,我收到来自Invoice.create(invoiceData)
有效数据。
另外, newBooking.save()
函数按预期工作。 所以,这就是最困扰我的,至于为什么它不适用于一个特定的集合。
这背后的原因是什么?
编辑:这是发票模式
const InvoiceSchema = new Schema({ item: String, paidStatus: Boolean, quantity: String, amount: Number, invoiceId: String, userId: {type: mongoose.Schema.Types.ObjectId, ref: 'User'}, date: {type: Date, default: Date.now()}, __v: {type: Number, select: false} }, {strict: true}) export default mongoose.model('Invoice', InvoiceSchema);
而且我没有收到任何错误,预订成功。 我尝试logging在当前块中收到的数据,这是一个有效的文件,正如我已经在上面提到的。
编辑:以下是调用generateInvoice
函数的完整代码: book.js
绝望的
return Invoice.create(invoiceData).then((data)=>{...
尝试
new Invoice(invoiceData).save((err,data)=>{ if(err) return console.log(err); return data._id; })