Как обновить данные массивом pu sh с условием mongoose - PullRequest
0 голосов
/ 31 марта 2020

Я использую mon goose, а я просто использую mon go DB.

Вот моя схема

date: { type: String },
branchDetailId: { type: String },
times: [
  {
    time: { type: String },
    totalOrderCount: { type: String },
    orderId: [String],
  },
],

Вот мои данные в массиве раз

"times": [
{
    "orderId": [
        "5e8178b1b315ee022277e80b",
        "5e8178b1b315ee022277e80b"
    ],
    "_id": ObjectID("5e82ed1c4e553a0874cdad94"),
    "deleted": false,
    "time": "11.00",
    "totalOrderCount": "2",
    "deletedAt": null
},
{
    "orderId": [
        "5e8178b1b315ee022277e803b",
        "5e8178b1b315ee0222773e80b"
    ],
    "_id": ObjectID("5e82ed1c4e553a0874cdad95"),
    "deleted": false,
    "time": "12.00",
    "totalOrderCount": "2",
    "deletedAt": null
}
],

Я и у меня есть свой orderId

"ertertretretet" // вот пример заказа Id

Я хочу перенести свой orderId в time.times: 11: 00

что-то вроде этого

if(times.times == "11.00"){
 push orderId into DB in object time == 11.00 filed
}

1 Ответ

3 голосов
/ 31 марта 2020

Вы можете использовать $ pu sh (или $ addToSet , если хотите избежать дублирования) с позиционным оператором $ для решения вашей проблемы. Как то так:

db.your_collection.update({"times.time": "11.00"}, {$push: {"times.$.orderId": "your_orderId"}})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...