pymongo/MongoDB中基于不完全字典的文档查找

pymongo/MongoDB中基于不完全字典的文档查找,mongodb,python-2.7,pymongo,Mongodb,Python 2.7,Pymongo,我把时间储存成一本字典,我不在乎小时/分/秒,因为我想找到那天的每个约会 显然(或者可能不是很明显,因为我一开始认为它会起作用),finding('time':{'month':m,'day':d,'year':y})不会返回任何结果。我假设我必须将dict的其余部分与[任何字符,任何长度]的正则表达式匹配,但这也不会返回任何结果 db.appointments.find({'name': some_name, 'time': {'month': mm, 'day': dd, 'year': y

我把时间储存成一本字典,我不在乎小时/分/秒,因为我想找到那天的每个约会

显然(或者可能不是很明显,因为我一开始认为它会起作用),finding('time':{'month':m,'day':d,'year':y})不会返回任何结果。我假设我必须将dict的其余部分与[任何字符,任何长度]的正则表达式匹配,但这也不会返回任何结果

db.appointments.find({'name': some_name, 'time': {'month': mm, 'day': dd, 'year': yyyy, 'hour': r'.*', 'minute': r'.*', 'second': r'.*'}})

我自己查找和尝试的每件事似乎都不起作用,所以我不确定我应该做什么。

从技术上讲,你是在把时间存储为 相关报价可帮助您:

子文档中特定字段的相等匹配选择 当子文档中的字段包含 匹配指定的值

在下面的示例中,查询使用点表示法匹配所有 字段生成器的值是以下子文档的文档: 包含值为“ABC123”的字段公司,并且可能包含其他 字段:

db.inventory.find({'producer.company':'ABC123'})

因此,您的示例可能如下所示:

db.appointments.find({'name': some_name, 'time.month' : mm, 'time.day': dd, 'time.year': yyyy}})