我正在使用 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]) 并更新预览字段。
现在我被迫向数据库发出两个查询,一个带有参数,从数组$pull
中取出 Dans 条目,另一个带有将 Dans 条目添加到数组开头的参数。pmhistory
$set
pmhistory
是否可以使用 1 个查询而不是两个?没有得到have conflicting mods in update
,因为我正在改变数组的大小。