Mongodb 如何从文档中删除字段
数据库架构:Mongodb 如何从文档中删除字段,mongodb,meteor,Mongodb,Meteor,数据库架构: { _id: "kun2", result150160: [10,20,30]; moon: 4 } 我想通过客户端使用变量删除整个字段result150160: var deleteresult = "result150160" Box.update( {_id: this._id} , {$unset: { deleteresult } } ); 你可以做: var deleteresult = {}; deleteresult["result150
{
_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:}
。即使它是空的
签出:
db.collection.update({field:value1},{$unset:{field1::})代码>
上面的示例从字段值为value1的文档中删除集合中的字段1。$unset语句中字段的值(即上面的“”)不会影响操作
试试这个,它应该适合你:
var deleteresult = "result150160";
var updateQuery={$unset:{}};
updateQuery.$unset[deleteresult]=1;
Box.update( {_id: this._id} ,updateQuery,false,true);
这不起作用,我也不希望在查询中使用字符串,因为result150160是一个示例,也可能是另一个字符串:)我稍微修改了语法,您可以在适当的位置使用任何字符串。还请检查您的javascript控制台,因为它可能是导致它无法工作的其他原因(
.allow
权限或没有正确输入\u id
)我在几分钟前测试了您的语法,但它无法工作。这是正确的语法使用方法-您可以从我包含的文档链接中看到。您确定问题不在代码的其他地方吗?Box
是否实际引用了一个集合?\u id
属性正确吗?@sebastian您是否尝试在meteor mongo控制台中运行该命令。如果它能工作,那么你就是被破坏的代码。从今天起,这个问题似乎在Meteor中持续存在。我在代码中尝试了$unset,但没有成功。我必须使用更新将字段更改为false,这在我的案例中表示为取消设置字段,并且工作正常。