我希望能在一次操作中完成此操作,只需要敲擊數據庫一次......但我不知道是否可以使用api。 ....設置字段如果不存在,推送到數組,然後返回文檔
我想要的是:
- 找到ID文件(這將永遠存在)
- 添加對象,如果它不存在
{ dayOfYear: 3, dataStuff: [{time: Date(arg), data: 123] }
- 推
{time: Date(arg), data: 123] }
到dataStuff
array - 返回修改後的文檔
我熟了沿着
return this.collection.findOneAndUpdate(dataDoc,
{ $set: { dayOfYear: reqBody.dayOfYear ,
$addToSet: { dataStuff: { time: Date(reqBody.date), data: reqBody.data }
}
線的東西,但沒有成功
這不僅僅是一個你不清楚的問題。語句中存在語法錯誤,也應該從以前的問題中吸取教訓。我不知道你是否要求一種不同的方法來處理你以前的問題響應[$ addToSet基於對象關鍵字存在](http://stackoverflow.com/a/35762783/5031275)。如果這是你再次提出的問題,那麼這就是爲什麼這不是一次更新的原因,這些原因都應該得到很好的解釋。 –
你能給一些反饋嗎?自發布以來,您顯然已經訪問過該網站,它只能幫助您清楚地明確自己在問什麼。 –
隨着MongoDb apis的推出,我無法正確地繼續使用我的設計,因爲會在嵌入式文檔中進行遞歸。我將不得不將其分解爲多個文檔並使用規範化。由於規範化,我將看看PostgreSQL,因爲它是專用的關係數據庫。 MongoDb是我選擇非規範化的選擇,但不適用於規範化。 – dman