我正在尝试检索在一定范围内至少具有一个'cov.res.timestamp'条目的文档。
{'cov.res.timestamp': {
$gte: 1571424600,
$lte: 1571597580
}}
它列出了不属于此范围的文档,我在这里做错什么了?
这是我的示例文档
"cov" : [
{
"order" : NumberInt(1),
"res" : {
"text" : [
"Start the conversation!"
],
"source" : "watson",
"timestamp" : NumberInt(1566020214),
"timestamp_hr" : "17-08-2019 05:36:54"
}
"res":{},
"res":{},
]
答案 0 :(得分:1)
不确定您要执行的操作,但默认情况下条件是错误的mongodb和条件,因此您需要$或输入类型,因此这里提供了fixes选项:
{
$or: [{
'cov.res.timestamp': {
$gte: 1571424600,
$exists: true,
},
'cov.res.timestamp': {
$lte: 1571597580,
$exists: true,
}
}
]
}
或者您需要
{
'cov.res.timestamp': {
$lte: 1571424600,
$gte: 1571597580
}
}
Bhushan的回答是正确的,我以某种方式错过了数组:
db.xxxxx.aggregate(
[
// Stage 1
{
$unwind: {
path : "$cov",
includeArrayIndex : "arrayIndex", // optional
preserveNullAndEmptyArrays : false // optional
}
},
// Stage 2
{
$match:{
"cov.res.timestamp": {
$gte:1571597580,
$lte:1571424600
}}
}
])
答案 1 :(得分:1)
@epsan,您好,您提到您要显示满足数组 conv
的至少一个元素的以下条件的整个文档 inches = (3,3)
dpi = 150
fig, ax = plt.subplots(figsize=inches, dpi=dpi)
fig.subplots_adjust(left=0, right=1, top=1, bottom=0, wspace=0, hspace=0)
ax.imshow(df_data, cmap='gray', vmin=-100, vmax=300)
fig.save('copy-without-whitespace.png')
您尝试在2019年10月18日至20日之间获取数据 通过生成虚拟数据进行了测试 该查询是正确的,只需交叉检查其他元素 res 为了只获得订单匹配条件,我建议使用聚合。
{'cov.res.timestamp': {
$gte: 1571424600,
$lte: 1571597580
}}