6

数据库架构:

{
    _id: "kun2",
    result150160: [10,20,30];
    moon: 4
}

我想用一个变量由客户端删除整个字段 result150160:

var deleteresult = "result150160"
Box.update( {_id: this._id} , {$unset: { deleteresult } } );
4

3 回答 3

13

正确的语法是这样的:

Box.update( {_id: this._id} , {$unset: { deleteresult : "" } } );

您必须为$unset操作指定一个值:{ deleteresult : "" }。即使它是空的。

查看相关文档

db.collection.update( { field: value1 }, { $unset: { field1: "" } } );
上面的示例从字段值为 value1 的文档中删除集合中的 field1。$unset 语句中的字段值(即上面的“”)不影响操作。

于 2013-08-29T08:24:51.967 回答
1

试试这个它应该适合你:

var deleteresult = "result150160";    
var updateQuery={$unset:{}};   
updateQuery.$unset[deleteresult]=1;   
Box.update( {_id: this._id} ,updateQuery,false,true);
于 2013-08-29T19:02:38.840 回答
1

你可以这样做:

var deleteresult = {};
deleteresult["result150160"] = true
Box.update( {_id: this._id} , {$unset: deleteresult } );

基本上你必须使用一个键值对,你使用什么并不重要true,只要那里有东西。

于 2013-08-29T08:23:43.323 回答