我有这样的记录:
{
"Date" : ISODate("2013-06-28T18:30:00Z"),
"Details" : {
"Amount1" : -200,
"Amount2" : 2800,
"Amount3" : -100
},
'NID' : 'T123RT',
'PID' : 'P123RT',
"SettAmount" : 2500,
"SettStatus" : "completed",
"Status" : "completed",
"StoreID" : "51ea54279d867b040b000008",
"_id" : ObjectId("51ea54279d867b040b000013")
}
我正在尝试更新文档,如:
db.settlements.update({
'StoreID' : "51ea54279d867b040b000008",
'Date' : ISODate("2013-06-28T18:30:00Z")
}, {
$unset : {
'NID' : "",
'PID' : ""
}
}, {
$set : {
'SettStatus' : 'start',
'Status' : 'pending'
}
});
但是,只有未设置的操作才能成功。以上查询中的错误是什么........?
答案 0 :(得分:41)
db.settlements.update(
{
'StoreID': "51ea54279d867b040b000008",
'Date': ISODate("2013-06-28T18:30:00Z")
},
{
$unset: {
'NID' : "",
'PID' : ""
},
$set: {
'SettStatus': 'start',
'Status': 'pending'
}
}
);
在您的命令中,您在更新命令中使用$ set为<options>
,而不是<update>
http://docs.mongodb.org/manual/core/update/#crud-update-update