javascript - MongoDB 检查文档/记录是否存在
问题描述
我试图将 .find({}) 与 mongogb 一起使用,不幸的是它没有给我我期望的响应,我不确定如何检查文档是否存在?我想做的是说:
如果文档确实存在,则执行某些操作.. IE 发回响应,但如果文档不存在,则创建文档,
不幸的是,我知道一个文档不存在,但它必须使用“if (docs)”来获取错误的内容,但是当我将其更改为其他内容时,它总是会创建记录!?
编码:
addRefund : (refundCalc, callback) => {
order_number = refundCalc.refundDetails.customer_details.order.order_number;
dbconnect.createConnection()
refund.find({order_number: order_number}, (err, docs) => {
if (docs) {
console.log('docss!!!!!!!!!!!!!' + JSON.stringify(docs));
console.log('calling within error!!!!!!')
let notStored = {"refundDocStored" : "False"}
callback(notStored)
dbconnect.closeConnection();
}
else {
refund.create(refundCalc).then((refunddoc) => {
let filestored = {"refundDocStored" : "True"}
dbconnect.closeConnection();
callback(filestored)
}).catch((err)=> {
console.log(err);
dbconnect.closeConnection();
})
}
})
},
架构:
const refundSchema = new Schema({
domain : { type: String},
refundDetails : {
customer_details : [],
refund : {
shipping : {
amount : { type: Number},
tax : {type : Number},
maximum_refundable : {type : Number}
},
refund_line_items: [],
transactions: []
}
}
});
订单存储在refundDetails中,如下所示:
"refundDetails":{"customer_details":{"order":{"order_number":1021
它似乎对我不起作用!如果存在文件,我似乎无法真正证明它确实存在?
任何帮助都会很棒,谢谢!
解决方案
您使用了错误的搜索查询。您正在搜索 order_number ,它是另一个对象内的对象的属性。您必须在查询中引用 order_number 完整路径,即{"refundCalc.refundDetails.customer_details.order.order_number" : order_number}
addRefund : (refundCalc, callback) => {
order_number = refundCalc.refundDetails.customer_details.order.order_number;
dbconnect.createConnection()
refund.find({"refundCalc.refundDetails.customer_details.order.order_number": order_number}, (err, docs) => {
if (docs) {
console.log('docss!!!!!!!!!!!!!' + JSON.stringify(docs));
console.log('calling within error!!!!!!')
let notStored = {"refundDocStored" : "False"}
callback(notStored)
dbconnect.closeConnection();
}
else {
refund.create(refundCalc).then((refunddoc) => {
let filestored = {"refundDocStored" : "True"}
dbconnect.closeConnection();
callback(filestored)
}).catch((err)=> {
console.log(err);
dbconnect.closeConnection();
})
}
})
},
推荐阅读
- postgresql - 不受支持的数据类型:自定义 Valuer 返回 nil 的 GORM 字段上的 &[] 错误?
- variables - 如何将隐藏在applescript字符串中的变量转换为可读变量?
- r - R dplyr/array demean 添加一列与 rowmeans
- javascript - 单击按钮时,在 JavaScript 中创建具有唯一 ID 的动态下拉列表
- r - R中数据框中所有列的乘积
- salesforce - 在 Salesforce 中,以编程方式更改联系人所有者并通知用户(通过电子邮件)更改的最简单方法是什么?
- smartcard - 如何验证智能卡的制造商?
- java - Java Spring RestController 无法实现自定义接口
- r - 以交替顺序 Cbind 数据帧
- sql-server - 如何按使用 Windows 功能进行付款的每个部分的最短日期对付款的每个部分进行分组