数据库模式:如何从文档中删除字段
{
_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 } });
你可以这样做:
var deleteresult = {};
deleteresult["result150160"] = true
Box.update({_id: this._id} , {$unset: deleteresult });
基本上,你必须使用一个关键值对,它并不重要你用什么true
,只要有东西在那里。
正确的语法是这样的:
Box.update({_id: this._id} , {$unset: { deleteresult : "" } });
你必须指定$unset
操作的值:{ deleteresult : "" }
。即使它是空的。
结帐的relevant docs:
db.collection.update({ field: value1 }, { $unset: { field1: "" } });
上面的例子中删除从那里字段具有值1的值的文件集合FIELD1。 $ unset语句中字段的值(即上面的“”)不影响操作。
试试这个它应该为你工作:
var deleteresult = "result150160";
var updateQuery={$unset:{}};
updateQuery.$unset[deleteresult]=1;
Box.update({_id: this._id} ,updateQuery,false,true);
这不工作,我不希望在查询字符串,因为result150160是一个例子,也可以是另一个字符串:) – Sebastian
我稍微修改了语法,你可以使用任何字符串。请检查您的JavaScript控制台,因为它也可能是导致它无法正常工作的其他东西('.allow'权限或没有正确使用'_id') – Akshat