Python 按范围筛选Mongo嵌入式文档

Python 按范围筛选Mongo嵌入式文档,python,mongodb,pymongo,Python,Mongodb,Pymongo,我有一个mongo系列,看起来像这样: { “_id”:“…”, “朋友们”:{ 'id1':{'name':'john','dateAdded':ISODate(…)}, 'id2':{'name':'joe','dateAdded':ISODate(…)}, ... } } 我想按朋友属性添加日期筛选收藏,而不更改收藏模式 是否有一个操作符可以在嵌入式文档字典中进行过滤 其中查询将如下所示: self.collection.find({ 'friends.$operator.dateAdd

我有一个mongo系列,看起来像这样:

{
“_id”:“…”,
“朋友们”:{
'id1':{'name':'john','dateAdded':ISODate(…)},
'id2':{'name':'joe','dateAdded':ISODate(…)},
...
}
}
我想按
朋友
属性
添加日期
筛选收藏,而不更改收藏模式

是否有一个操作符可以在嵌入式文档字典中进行过滤

其中查询将如下所示:

self.collection.find({
'friends.$operator.dateAdded':{
“$gte”:datetime.datetime(2000,1,1),
“$lte”:datetime.datetime(2001,9,1)
}
})

没有操作员执行您的要求。用(非常)简单的术语,将MongoDB视为键/值存储;您需要知道键才能确定值


如果可以选择,请重构模式,使
friends
成为一个数组,并丢失
id
s。通常,使用任意命名键(如
id[n]

是一种糟糕的设计。但是,如果我使用数组,如何在执行find()的同时过滤数组?使用
elemMatch
或聚合管道。很好!非常感谢。