可以在查询中通配符键吗?例如,根据下面的记录,我想做一个.find({'a.*': 4})

{
  'a': {
    'b': [1, 2],
    'c': [3, 4]
  }
}

推荐答案

正如所问,这是不可能的.您链接到的服务器问题仍然不到"issues we're not sure of".

MongoDB在使用数组方面有一些智能,我认为这是围绕这样一个特性的复杂性的一部分.

以下面的查询db.foo.find({ 'a.b' : 4 } )为例.此查询将匹配以下文档.

{ a: { b: 4 } }
{ a: [ { b: 4 } ] }

那么"通配符"在这里做什么呢?db.foo.find( { a.* : 4 } )与第一份文件相符吗?第二个呢?

此外,这在语义上意味着什么?正如您所描述的,这个查询实际上是"find documents where any field in that document has a value of 4".这有点不寻常.

你有没有想要达到的特定语义?也许文档 struct 的改变会让你得到你想要的查询.

Mongodb相关问答推荐

MongoDB聚合匹配字符串字符

MongoDB中的字符串聚合

如何使用mongodb进行离线开发?

Mongo查找条件:不存在

如何修改 mongodb 中嵌套对象数组中的字段名称/键?

在推入 mongodb 时自动填充 golang struct 中的 created_at 和 updated_at

MongoDB 存储大量指标/分析数据的方法

如何构建我只需要打开一次 mongodb 连接的快速应用程序?

使用 MongoDb 处理迁移

Stripe:必须提供来源或客户

mongodb,pymongo,aggregate聚合给出奇怪的输出

如何使用 java 驱动程序更新 mongo db 中的文档字段?

MongoDB:自动生成的 ID 为零

如何使用 MongoDB 建模 likes投票系统

Mongoose 不创建新集合

如何确保基于特定字段的数组中的唯一项 - mongoDB?

如何在 MongoDB 聚合查询中使用 $hint?

MongoDB聚合将字符串数组连接到单个字符串

如何使用 Pymongo 在 MongoDB 中 Select 单个字段?

哪个数据库适合我的应用程序 mysql 或 mongodb ?使用 Node.js 、 Backbone 、 Now.js