gpt4 book ai didi

MongoDB 查询 - 限制名称与模式匹配的字段

转载 作者:可可西里 更新时间:2023-11-01 10:44:30 26 4
gpt4 key购买 nike

我已经阅读了我能找到的关于 MongoDB 投影的所有内容。我希望这很简单,但由于 Mongo 查询极其灵活,我错过了。

在我们的 MySql 数据库中,我们采用了在“隐藏”字段前加上下划线作为前缀的业务实践。我们的应用程序知道如何隐藏这些字段。

将一些数据移动到 mongo,我需要检索文档,省略所有下划线前缀字段。当然,这应该在查询中完成,而不是在检索后进行文档操作。

$regex、$in、$all 等所有运算符似乎都适用于。我需要建立一个投影,根据名称忽略未知数量的字段。像这样的东西:

db.coll.find({}, {"_*": 0})

当然这行不通,但可以解释这个想法。

我应该注意:这是必要的,因为我们的应用程序用户可以编辑文档,所以我不知道模式可能是什么样子。我知道我们的“内部”字段以 _ 为前缀,并且需要通过编辑的遗漏来保护这些字段。

希望这很容易...

最佳答案

您可以有一个单独的字段,如 hidden_​​fields 或其他。请参阅以下架构。

{_id: 'myid1', hidden_fields: {"_foo": "bar", "_foo2": "bar2"}, key1: value1 ...}

现在在上面schema的基础上做,

db.collection.find({ ... }, {hidden_fields: 1})

这将显示隐藏字段。您还可以在子文档中的字段上建立索引,这样也不会在性能方面造成损失。

关于MongoDB 查询 - 限制名称与模式匹配的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13848959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com