簡體   English   中英

MongoDB檢查文檔/記錄是否存在

[英]MongoDB Check if a document/record exists

我試圖將.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":{"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();
            })
        }
    })
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM