Javascript MongoDB检查文档/记录是否存在
我试图在mongogb中使用.find({}),不幸的是它没有给我预期的响应,我不确定如何检查文档是否存在?我想说的是: 如果某个文档确实存在,请执行某些操作。。我给你回信 但如果文档不存在,则创建文档 不幸的是,我知道一个文档并不存在,但它一定是用“if(docs)”拾取了错误的内容,但是当我将它更改为其他内容时,它总是创建记录 守则:Javascript MongoDB检查文档/记录是否存在,javascript,mongodb,Javascript,Mongodb,我试图在mongogb中使用.find({}),不幸的是它没有给我预期的响应,我不确定如何检查文档是否存在?我想说的是: 如果某个文档确实存在,请执行某些操作。。我给你回信 但如果文档不存在,则创建文档 不幸的是,我知道一个文档并不存在,但它一定是用“if(docs)”拾取了错误的内容,但是当我将它更改为其他内容时,它总是创建记录 守则: addRefund : (refundCalc, callback) => { order_number = refundCalc.refund
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":{"customer_details":{"order":{"order_number":1021
这对我来说根本不管用!如果一份文件存在,我似乎无法证明它确实存在
任何帮助都会很好,谢谢 您使用了错误的搜索查询。您正在搜索order_number,它是另一个对象内部对象的属性。您必须在查询中引用订单号完整路径,即
{“ReturnCalc.ReturnDetails.customer\u details.order.order\u number”:order\u 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();
})
}
})
},
您使用了错误的搜索查询。您正在搜索order_number,它是另一个对象内部对象的属性。您必须在查询中引用订单号完整路径,即
{“ReturnCalc.ReturnDetails.customer\u details.order.order\u number”:order\u 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();
})
}
})
},
数据保存得很好,只是检查它是否存在。我意识到问题在于使用的搜索查询。改为使用此
{“ReturnCalc.ReturnDetails.customer\u details.order.order\u number”:order\u number}
数据保存良好,只是检查它是否存在。我意识到问题在于使用的搜索查询。改为使用此{“ReturnCalc.ReturnDetails.customer\u details.order.order\u number”:order\u number}