这一定是一个愚蠢的错误,但我找不到它。
当我运行db.getCollection('communes').findOne({})
时,
我得到了:
{
"_id" : ObjectId("59b851a19db72301ae771c57"),
"COMMUNE" : "ALAA6",
"LIBGEO" : "ROHRBACH",
"PAYS" : "Allemagne"
}
这很好。
但是当我运行db.getCollection('communes').findOne({COMMUNE: "ALAA6"})
时,它什么也没有返回!
由于奇怪的原因,对其他字段进行过滤是有效的,因此当我运行db.getCollection('communes').findOne({LIBGEO: "ROHRBACH"})
时,它会返回结果。在"PAYS"
上过滤同样的事情。
在COMMUNE
周围添加引号,即运行db.getCollection('communes').findOne({"COMMUNE": "ALAA6"})
或使用find
代替findOne
不会改变任何内容。
有什么想法吗?
答案 0 :(得分:0)
好的,我的错。该集合是从Excel导出创建的,似乎第一列包含一个奇怪的字符。从Robo3T客户端查询没有显示它,但从Python返回返回:
{'LIBGEO': 'ROHRBACH',
'PAYS': 'Allemagne',
'_id': ObjectId('59b851a19db72301ae771c57'),
'\ufeffCOMMUNE': 'ALAA6'}
所以显然\ufeff
之前的COMMUNE
字符应该被移除......