У меня есть db;Вставить элемент массива после определенного значения в mongodb
{"_id" : 1 , children: ["2", "123", "5"]}
Я хочу вставить элемент в дочерний массив. Это легко, когда вы знаете индекс. $ позиция может использоваться для этой цели. Подобно;
db.module_menu.update({"_id" : "1"} ,
{$push : {"children" : {
$each : ["12"] , $position : 1}}});
Но позволяет сказать, что я не знаю индекс позиции, я знаю значение элемента, который я хочу вставить после.
У меня есть value: 12
и значение, которое я хочу вставить после. insertAfter: 2
В результате это должно быть;
{"_id" : 1, text: "" , children: ["2","12", "123", "5"]}
Как это сделать?
Пройдите через каждый элемент в массиве children, найдите индекс значения и, используя $ position, вставьте значение. Это единственный способ сделать это?
Вы можете попробовать с $ addToSet –
$ addToSet может не держать массивы заказа –
$ addToSet просто как $ толчок ? Он добавляет к концу набора. Я ошибаюсь? –