我已经阅读了有关 MongoDB 中投影的所有内容。我希望这很简单,但由于 Mongo 查询的巨大灵活性,我错过了它。
在我们的 MySql 数据库中,我们采用了一种业务实践,即为“隐藏”字段添加下划线前缀。我们的应用程序知道如何隐藏这些字段。
将一些数据移动到 mongo,我需要检索文档,省略所有下划线前缀字段。当然,这应该在查询中完成,而不是在检索后进行文档操作。
所有运算符,如 $regex、$in、$all 似乎都适用于values。我需要构建一个投影,根据名称忽略未知数量的字段。就像是:
db.coll.find({}, {"_*": 0})
当然这不起作用,但解释了这个想法。
我应该注意:这是必要的,因为我们的应用程序用户可以编辑文档,所以我不知道架构可能是什么样子。我确实知道我们的“内部”字段以 _ 为前缀,并且这些字段需要通过编辑器的省略来保护。
希望这很容易...
您可以有一个单独的字段作为hidden_fields
或者其他的东西。请参阅以下架构。
{_id: 'myid1', hidden_fields: {"_foo": "bar", "_foo2": "bar2"}, key1: value1 ...}
现在根据上面的模式做,
db.collection.find({ ... }, {hidden_fields: 1})
这将显示隐藏字段。您还可以在子文档中的字段上建立索引,这样也不会损失性能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)