比方說,有在MongoDB中的文件,這是這個樣子:MongoDB中自動計算領域
{
"lastDate" : ISODate("2013-14-01T16:38:16.163Z"),
"items":[
{"date":ISODate("2013-10-01T16:38:16.163Z")},
{"date":ISODate("2013-11-01T16:38:16.163Z")},
{"date":ISODate("2013-12-01T16:38:16.163Z")},
{"date":ISODate("2013-13-01T16:38:16.163Z")},
{"date":ISODate("2013-14-01T16:38:16.163Z")}
]
}
甚至是這樣的:
{
"allAre" : false,
"items":[
{"is":true},
{"is":true},
{"is":true},
{"is":false},
{"is":true}
]
}
頂級域"lastDate"
和"allAre"
應每當數組中的數據發生更改時重新計算。 "lastDate"
應該是所有最大的"date"
。 "allAre"
只有在所有項目都有"is"
爲真時才應該等於true。
我應該如何構建我的查詢以實現MongoDB的這種行爲?
在插入時預先計算一些值是否被認爲是一種很好的做法,而不是在獲取請求期間計算它們?
您想根據此條件更新記錄,或者希望在插入時應用此條件。 –
@Himanshusharma這個想法是用''items''在每個操作上更新計算字段(比如''allAre''或''lastDate'''),它可以是'$ pull','$ push'或'$ (更新)'。 – dmigo
@dmigo爲什麼你不能只擴展更新查詢並手動設置屬性?我的意思是因爲你正在做一個「推」,那麼你知道值應該改變。 –