2
我有以下的文檔結構:設置相同的值
{
...
timings: {
mon: "",
tue: "",
wed: "",
thu: "",
fri: "",
sat: "",
sun: "",
}
...
}
我想設置的值「24小時開放」的一週中的每一天。
目前我使用的查詢:
db.collection.update({_id: ObjectId("someId")}, {$set: {"timings.mon": "Open 24 Hours"}});
然後運行的一週中的幾天,其餘相同。
我也可以明確地設置同一個查詢中的所有字段,但是更改日期並再次運行它會更快。
有沒有辦法以更有效的方式設置子文檔中多個字段的值?
UPDATE
我嘗試下面的查詢,但它不工作:
db.collection.update({_id: ObjectId("someId")}, {$set: {"timings.$": "Open 24 Hours"}});
而不是創建'days'陣列手動你可以做'Object.keys(db.collection.findOne()時序)' – styvane
@邁克爾你是對的,這是一個優雅辦法。上面的方法考慮了選擇性更新,操作系統可能想要更新某些屬性,以便「days」數組可以相應地進行調整。 – chridam
@chridam所有這些都可以在shell本身完成? – ZeMoon