第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Mongo并不總是返回正確的結(jié)果

Mongo并不總是返回正確的結(jié)果

犯罪嫌疑人X 2021-04-07 16:19:08
我有一個(gè)nodeJS腳本正在處理排隊(duì)的JSON請(qǐng)求。我們?cè)贛ongo(v3.6.3)中查詢要處理的請(qǐng)求隊(duì)列,然后在該隊(duì)列上執(zhí)行forEach。我們使用Promise查詢API端點(diǎn),然后使用async / await解析請(qǐng)求。我們執(zhí)行Mongo查詢,以查看過(guò)去3天內(nèi)是否有該患者的現(xiàn)有記錄。我們使用findOne或find limit 1查找患者ID和藥房ID(已嘗試同時(shí)嘗試解決問(wèn)題)。如果有現(xiàn)有記錄,則對(duì)現(xiàn)有記錄執(zhí)行更新。否則,我們將創(chuàng)建一個(gè)新文檔。這似乎在大多數(shù)時(shí)間都有效。但是,有時(shí)每個(gè)排隊(duì)的條目將導(dǎo)致創(chuàng)建一個(gè)新文檔。因此,如果隊(duì)列中有4個(gè)完整的病人,我們將創(chuàng)建4個(gè)遭遇。我們可以清除數(shù)據(jù)庫(kù)并再次處理隊(duì)列,它將正常工作。它似乎在大多數(shù)時(shí)間都有效。該過(guò)程可以開始工作,然后在開始中斷后不久。一旦我們創(chuàng)建了一條重復(fù)記錄,隊(duì)列中的所有其他項(xiàng)目最終將被創(chuàng)建為新條目。我認(rèn)為問(wèn)題與Mongo無(wú)法正確返回?cái)?shù)據(jù)有關(guān)。有人目睹過(guò)這樣的事情嗎?我們最近切換到查找并限制1以查看是否有幫助。我們已經(jīng)多次處理了隊(duì)列,并且代碼有效,并且不會(huì)導(dǎo)致重復(fù)。我們注意到,當(dāng)我們處理一天的第一個(gè)隊(duì)列時(shí),似乎發(fā)生了重復(fù)。但是,一天的第一個(gè)隊(duì)列并不總是會(huì)導(dǎo)致錯(cuò)誤。但是,這可能并且很可能是巧合。我們?nèi)绾尾樵兒吞幚黻?duì)列  let token;  (async () => {    // Get Access Token    token = await authenticate();        PharmacyQueue.find({ $and: [{ archive: false }, { date: { $gte: today } }] })      .then(results => {        let queue = [];        results.forEach(request => {          queue.push(JSON.parse(request.rawJSON));          request.archive = true;          request.save().catch(err => {            console.log('Unable to archive');          });        });        return queue;      })      .then(async requests => {        for (const request of requests) {          let response = await parseRequest(token, request);          // SLEEP NOT NEEDED - JUST ADDED TO GIVE US TIME TO WATCH DEBUG LOGS          await sleep(1000);          console.log(response);        }      })      .then(() => {        mongoose.disconnect();      })      .catch(err => console.log(err));  })();API上的代碼以搜索現(xiàn)有記錄-發(fā)生問(wèn)題的位置。我們剛剛從findOne切換到限制為1的find // Search For existing Encounter  PharmacyEncounter.find(    {      $and: [        {          'patient.patientId': patient.patientId        },        {          'pharmacy.ehrId': pharmacy.ehrId        },        {          date: {            $gt: threeDaysAgo          }        },        {          date: {            $lte: moment(today)              .endOf('day')              .toDate() //today +'T23:59:59'          }        }      ]    },    '-rawJSON -analytics'  )
查看完整描述

1 回答

?
aluckdog

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊

threeDaysAgo和今天變量是包含在請(qǐng)求外部的常量。因此,當(dāng)節(jié)點(diǎn)應(yīng)用程序啟動(dòng)時(shí),它們被設(shè)置為不可變的。Mongo將返回適當(dāng)?shù)慕Y(jié)果,直到第二天。然后mongo將停止提供“正確”的結(jié)果。我將對(duì)代碼進(jìn)行更改以進(jìn)行測(cè)試,然后nodemon重新啟動(dòng)服務(wù)器,以解決問(wèn)題的另一天。


查看完整回答
反對(duì) 回復(fù) 2021-04-22
  • 1 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)