Mongo 没有办法在键名上使用正则表达式来匹配文档。
但是,您可以这样做$where
,让您使用执行 JavaScript 来选择每个文档。的缺点$where
是它不能利用索引,所以它需要反序列化集合中的每个文档,这对于大多数应用程序来说太慢了。
在 Mongo 中执行此操作的另一种方法是使用$exists
,$or
但它需要显式的键名。
对于这种类型的查询,这样的模式会更有效,并且还有助于使用以下方法在服务器上进行切片$
:
{
dataFields: [
{ id: 'A000', value: 'whatevs' },
{ id: 'A001', value: 'whatevs' },
{ id: 'A002', value: 'whatevs' },
{ id: 'B000', value: 'whatevs' },
{ id: 'B001', value: 'whatevs' },
{ id: 'C000', value: 'whatevs' },
]
}
或者:
{
dataFields: [
{ lettter: 'A', number: 0, value: 'whatevs' },
{ lettter: 'A', number: 1, value: 'whatevs' },
{ lettter: 'A', number: 2, value: 'whatevs' },
{ lettter: 'B', number: 0, value: 'whatevs' },
{ lettter: 'B', number: 1, value: 'whatevs' },
{ lettter: 'C', number: 0, value: 'whatevs' },
]
}