Я использую Монго для хранения личных сообщений, и, например, у меня есть массив следующим образом:MongoDB переупорядочивает массив и обновление
{
"_id": { "$oid" : "520b842005ab0d0000000003" },
"pmhistory": [
{
"sendername": "Tati",
"preview": "Hey Man!",
},
{
"sendername": "Dan",
"preview": "Hey Moon!",
},
{
"sendername": "Hellen",
"preview": "Hello, Im proper!",
},
],
"user": { "$oid" : "520b842005ab0d0000000002" },
"userid": "1"
}
Если Dan посылает новое сообщение, мне нужно, чтобы переместить его элемент массива в положение 0 (pmhistory [0]) и обновить поле предварительного просмотра.
Теперь я вынужден выпустить два запрос к базе данных, по одному с параметром $pull
, что вынимает запись Dans из pmhistory
массива, а другие с параметром $set
, который добавляет запись Dans к началу pmhistory
массива.
Возможно ли использовать 1 запрос вместо двух? Без получения have conflicting mods in update
, потому что я изменяю размер массива.
вид того, что я закончил использовать, прежде чем вы разместили это, но немного другое, спасибо в любом случае;) –