【问题标题】:MongoDB Regex pattern or wildcard in query key查询键中的 MongoDB 正则表达式模式或通配符
【发布时间】:2015-04-05 19:32:47
【问题描述】:

我必须以某种方式在我的 mongodb 查询中的一个键中设置一个通配符。这样*.files.FileID 还会检查我文档的以下键: root.files.FileID root.folders.0.files.FileID

我的尝试是简单地这样做:db.user_folders.find({ '*.files.FileID' : 6 }) 但它没有返回任何结果。

【问题讨论】:

  • 不可能。在SQL 术语中,这意味着select col* from table where col*=6;这个查询有意义吗?相反,它应该是select col1,col2 from table where col1=6 OR col2=6。同样的逻辑也适用于此。

标签: regex mongodb key database


【解决方案1】:

唯一作用于文档字段(而不是那些字段的值)的查询运算符是 $exists$type 运算符。

从这里开始基本上有两种方法:

  • 重做文档的结构(如果不深入了解您的数据集和用例,很难就此提出建议),从长远来看,这绝对是更好的选择;
  • 在 MongoDB 之外手动从集合和查询字段中获取所有文档(仅当您无法修改文档的结构或“仅此一次”极端情况时才应使用此方法)。

【讨论】:

    猜你喜欢
    • 2011-11-05
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多