$ push
được sử dụng để nối một giá trị vào một mảng. Trong ví dụ của bạn, measurements
là một mảng và Mongo đang thêm $newData
như phần tử đầu tiên của nó. Điều này giải thích 0
chỉ mục giữa measurements
và cấp levels
. Trong kết quả mong muốn của bạn, measurements
là một đối tượng tương đương với $newData
(tức là nó có levels
thuộc tính, đến lượt nó có một mảng các đối tượng bên trong).
Một trong các ví dụ sau sẽ đạt được những gì bạn muốn:
// if $newData is {"levels": [{"level_qty":12,"level_uom":"ft"}]}
->set("measurements", $newData)
// if $newData is [{"level_qty":12,"level_uom":"ft"}]
->set("measurements.levels", $newData)
// if $newData is {"level_qty":12,"level_uom":"ft"}
->push("measurements.levels", $newData)
Lưu ý:$push
sẽ linh hoạt hơn nếu bạn muốn nối dữ liệu với các bản cập nhật trong tương lai, trong khi $set
sẽ tự nhiên ghi đè trường đã cho.