是否可以在查询中使用通配符?例如,鉴于以下记录,我想做一个.find({'a.*': 4})
这在这里讨论过https://jira.mongodb.org/browse/SERVER-267但看起来它没有得到解决。
{
'a': {
'b': [1, 2],
'c': [3, 4]
}
}
是否可以在查询中使用通配符?例如,鉴于以下记录,我想做一个.find({'a.*': 4})
这在这里讨论过https://jira.mongodb.org/browse/SERVER-267但看起来它没有得到解决。
{
'a': {
'b': [1, 2],
'c': [3, 4]
}
}
如所问,这是不可能的。您链接到的服务器问题仍在“我们不确定的问题”下。
MongoDB 在使用数组方面有一些智能,我认为这是围绕这种功能的复杂性的一部分。
采取以下查询db.foo.find({ 'a.b' : 4 } )
。此查询将匹配以下文档。
{ a: { b: 4 } }
{ a: [ { b: 4 } ] }
那么“通配符”在这里做什么呢?db.foo.find( { a.* : 4 } )
它与第一个文件匹配吗?第二个呢?
此外,这在语义上意味着什么?正如您所描述的,查询实际上是“查找该文档中任何字段的值为 4 的文档”。这有点不寻常。
您是否正在尝试实现特定的语义?也许文档结构的改变会让你得到你想要的查询。