假设我有一个mongo集合,如下所示:
{
_id: ...,
timestamp: '',
SomeStuff: {},
OriginalData: '{
"name": "Bob",
"age": 23,
'}
}
这表示此集合中的单个记录。OriginalData字段中的所有内容都由转换为字符串的源JSON对象填充。其他所有内容都是一些标准化流程自动插入的内容(并且可以安全地假设始终存在)
有没有可能以一种我可以在OriginalData中的子字段上操作的方式来过滤这个集合?
比如:
# Find all the records with people who are 20 years or older
mongosh> col.find({'OriginalData.age': {$gte: 20}})
我希望基于数字子字段进行过滤,同时考虑到一些originalData字段可能不提供age字段。
1条答案
按热度按时间0lvr5msh1#
你应该通过将其保存为文档而不是字符串来解决这个问题。但是,同时你可以使用$function将其转换为文档,然后过滤它。