私はプライベートメッセージを保存するためにmongoを使用しています.例えば、私は次のような配列を持っています:
{
"_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]) に移動し、プレビュー フィールドを更新する必要があります。
ここで、データベースに対して 2 つのクエリを発行する必要があります。1 つはパラメーターを使用して配列$pull
から Dans エントリを取り出し、もう 1 つは Dans エントリを配列の先頭に追加するパラメーターを使用します。pmhistory
$set
pmhistory
2 つではなく 1 つのクエリを使用することは可能ですか? have conflicting mods in update
配列のサイズを変更しているため、取得せずに。