$ unset如何工作?

时间:2016-08-09 04:59:52

标签: mongodb

mongo documentation取消设置字段已完成$unset。我不太清楚它是如何工作的,但它似乎应该很简单。

The following operation uses the $unset operator to remove the tags field:

db.books.update( { _id: 1 }, { $unset: { tags: 1 } } )

在设置要取消设置的内容时会出现混乱。 1子句中的值$unset是多少?

3 个答案:

答案 0 :(得分:6)

根据$unset documentation: -

  

$ unset运算符删除特定字段。

     

语法:{ $unset: { <field1>: "", ... } }

     

$ unset表达式中的指定值(即“”)不会影响操作。

     

如果该字段不存在,则$ unset不执行任何操作(即无操作)。

所以你可以使用

db.books.update( { _id: 1 }, { $unset: { tags: 1 } } )

OR

db.books.update( { _id: 1 }, { $unset: { tags: 0 } } )

OR

db.books.update( { _id: 1 }, { $unset: { tags: "" } } )

以上所有查询都会删除tags字段。

希望你现在明白我的疑问。

答案 1 :(得分:3)

{$unset : { tags : 1 } }将清除文档中的字段tags。值1只是告诉您,从文档中清除此字段tags

如果要清除多个字段,则需要编写{$unset : { tags : 1, randomField : 1} }之类的内容。

您可以参考$ unset的official documentation获取更多信息。

根据文件:

  

$ unset运算符删除特定字段。考虑一下   语法如下:

     

{$ unset:{field1:“”,...}}

     

$ unset中的指定值   表达式(即“”)不会影响操作。

     

如果该字段不存在,那么$ unset什么都不做(即没有   操作)。

     

当与$一起使用以匹配数组元素时,$ unset将替换   匹配元素为null而不是删除匹配元素   来自阵列。

答案 2 :(得分:0)

$ unset运算符删除特定字段。