2016-03-06 162 views
0

如何编写查询来更新MongoDB中的多个字段?如何编写查询来更新MongoDB中的多个字段?

db.product.update(
    {"fileInfo":"undefined"}, 
    {$unset:{"fileInfo" : "undefined"}}, 
    {multi:true} 
) 

我想更新产品集合中的一组文档。首先,我需要检查该文档fileInfo字段是否未定义。如果未定义,则删除该字段。

回答

1

如果你要匹配一个真正的BSON undefined,而不是字符串"undefined",您可以使用$type运算符值6:

db.product.update(
    {"fileInfo": {$type: 6}}, 
    {$unset: {"fileInfo" : ""}}, 
    {multi:true} 
); 

但是,这是过时,但仍可以作为的MongoDB 3.2。

+0

其实在我的文档fileInfo:“undefined”是否有这就是为什么我用这个。我需要一个最初找到,然后更新我herad有关findandmodify,但我不能使用它..而在它是$类型:6 –

+0

[更新()](https://docs.mongodb.org/manual/reference/method/db.collection.update/#db.collection.update)是你需要的,而不是[findAndModify()](https:因为您想要更新多个文档。你的文件包含的内容不是很清楚,你应该在问题中添加它的副本。 '$ type:6'匹配一个基于它的值类型的字段,'6'是'undefined'的代码。检查我的答案中链接的文档。 – Nicolas

相关问题