是否可以在 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 中的字段,索引范围从 0 到 n必须事先全部展开?
类似项目的示例:
{ $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}]}
我有一组字段名如下:
"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 中的字段,索引范围从 0 到 n必须事先全部展开?
类似项目的示例:
{ $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}]}