Я пытаюсь сделать что-то довольно простое, я верю:
1) вставлять значение в поле массива, только если это значение еще не существует
2) удалить значение, если оно существует в массиве
Я просто не знаю, как сделать что-то из этого ... на данный момент я просто вставляю свое значение, не проверяя, существует ли оно уже: myArray << obj.id </p>
Спасибо
Alex
ps: с использованием Rails 3.0.3, mongo 1.1.5 и mongoid 2.0.0.rc5
ps2: это синтаксис mongodb для достижения того, чего я хочу, но я понятия не имею, как это сделать в mongoid
{ $addToSet : { field : value } }
Добавляет значение в массив только в том случае, если его еще нет в массиве, если поле является существующим массивом, в противном случае задает для поля значение массива, если поле отсутствует. Если поле присутствует, но не является массивом, возникает условие ошибки.
Чтобы добавить много valuest.update
{ $addToSet : { a : { $each : [ 3 , 5 , 6 ] } } }
$pop
{ $pop : { field : 1 } }
удаляет последний элемент в массиве (ДОБАВЛЕНО в 1.1)
{ $pop : { field : -1 } }
удаляет первый элемент в массиве (ДОБАВЛЕНО в 1.1) |