【发布时间】:2013-08-29 08:22:01
【问题描述】:
数据库架构:
{
_id: "kun2",
result150160: [10,20,30];
moon: 4
}
我想用一个变量删除整个字段result150160:
var deleteresult = "result150160"
Box.update( {_id: this._id} , {$unset: { deleteresult } } );
【问题讨论】:
数据库架构:
{
_id: "kun2",
result150160: [10,20,30];
moon: 4
}
我想用一个变量删除整个字段result150160:
var deleteresult = "result150160"
Box.update( {_id: this._id} , {$unset: { deleteresult } } );
【问题讨论】:
正确的语法是这样的:
Box.update( {_id: this._id} , {$unset: { deleteresult : "" } } );
您必须为$unset 操作指定一个值:{ deleteresult : "" }。即使它是空的。
db.collection.update( { field: value1 }, { $unset: { field1: "" } } );
上面的示例从字段值为 value1 的文档中删除集合中的 field1。 $unset 语句中的字段值(即上面的“”)不影响操作。
【讨论】:
Box 实际上是指一个集合吗? _id 属性是否正确?
你可以这样做:
var deleteresult = {};
deleteresult["result150160"] = true
Box.update( {_id: this._id} , {$unset: deleteresult } );
基本上你必须使用一个键值对,不管你用什么true,只要那里有东西。
【讨论】:
.allow 权限或没有正确使用 _id)
试试这个它应该适合你:
var deleteresult = "result150160";
var updateQuery={$unset:{}};
updateQuery.$unset[deleteresult]=1;
Box.update( {_id: this._id} ,updateQuery,false,true);
【讨论】: