是否可以在 mongodb 中对字段名称使用通配符?

is it possible to use wildcards for field names in mongodb?

我有一组字段名如下:

"field0.registers.hilo"
"field0.registers.lllo"
...

"field1.registers.hilo"
"field1.registers.lllo"
...

"field2.registers.hilo"
"field2.registers.lllo"
...


"fieldn.registers.hilo"
"fieldn.registers.lllo"
...

有没有一种方法可以简洁地指示 mongodb 中的字段,索引范围从 0n必须事先全部展开?

类似项目的示例:

{ $project: { "fieldn.registers.hilo": 1, "fieldn.registers.lllo": 1 } }

现在,在与使用 pymongo 收集。

is it possible to use wildcards for field names in mongodb?

没有

如果您的数据在此结构中,请重构它以使用列表。这正是列表的设计目的。

以下面重构的例子为例,使用$elemMatch只投影需要的数组元素:

from pymongo import MongoClient

db = MongoClient()['mydatabase']

db.register.insert_many([{
    'registers': [
        {
            'field': 0,
            'hilo': 1,
            'lllo': 2
        },
        {
            'field': 1,
            'hilo': 2,
            'lllo': 3
        },
        {
            'field': 2,
            'hilo': 3,
            'lllo': 4
        }
    ]}])

print(db.register.find_one({}, {'registers': {'$elemMatch': {'field': 1}}}))

打印:

{'_id': ObjectId('60b64e57c3214d73c390557b'), 'registers': [{'field': 1, 'hilo': 2, 'lllo': 3}]}