MongoDB 3.2.1/python 3.4/pymongo/pandas 0.17 (이 질문에 대해서는 후자의 두 가지가 아마 완전히 관련이 없지만)를 사용하고 있습니다.Mongodb 잘못된 결과 찾기 Int64 오브젝트
MongoDB에서 정말 이상하고 잘못된 동작이 나타납니다.
{
"_id" : NumberLong(-1819413477243867792),
"targetentity" : "NODOGENERICO .ag.HP_BAR_DEG_APP_1",
"tx" : false,
"ocname" : ".oc.serv6",
"specificproblem" : null,
"saf" : false,
"iscriticalnode" : null,
"checkmask" : null,
"notificationidentifier" : 1347592,
"province" : null,
"usertext" : null,
"additionaltext" : "AAA Invalid Response",
"director" : ".temip.madrids01_director",
"problemoccurences" : 1,
"usertags" : null,
"managedobject" : "NODOGENERICO .ag.HP_BAR_DEG_APP_1",
"isacceptednode" : null,
"elementcode" : null,
"state" : "Terminated",
"probablecause" : "Unknown",
"ran" : false,
"counttotal" : 1,
"locationcode" : "NULL",
"problemstatus" : "Closed",
"structurednotes" : null,
"collection" : "serv6",
"operatornotes" : null,
"alarmtype" : "CommunicationsAlarm",
"workinfo" : null,
"perceivedseverity" : "Major",
"core" : true,
"eventtime" : NumberLong(1467342666000),
"originalseverity" : "Major",
"vendor" : "Several",
"controlelementcode" : null,
"outageflag" : false,
"incident" : null,
}
이 "_id"는이 해시는 "해시"파이썬 3.4의 내장 방법을 사용하여 계산 기본적이다 :
나는이 같은 문서를 포함하는 컬렉션을 가지고있다.
문제는 삽입 후이 ID를 가진 요소를 찾을 수 없다는 것입니다. 내가 해봤
(이 시점에서 내가 직접 몽고 터미널에 노력하고있어,하지만 Pymongo 이상 그것은 나 같은 결과를 얻을 수) :db.getCollection('unique_alarm').find({"_id": NumberLong(-1819413477243867792)}
및
db.getCollection('unique_alarm').find({"_id": -1819413477243867792})
와 대한에게 나는 이걸 얻는다 :
문제는 NumberLong을 어떻게 다룰 지에 대한 것이지만 필드 이벤트 (같은 타입) 나는 전혀 문제가 없다.
db.getCollection('unique_alarm').find({"eventtime" : NumberLong(1467342666000)})
또는 의해 : 내가 쿼리 경우 EVENTTIME에 대한
즉
,db.getCollection('unique_alarm').find({"eventtime" :1467342666000})
이 두 쿼리는 다시 아무 문제가 첫 번째 문서를 반환하지 않습니다.
무슨 일이 일어나고 있는지 실마리가 있습니까? 처음 두 쿼리가 결과를 0으로 반환하는 이유는 무엇입니까? 내 시행 착오에
더 자세한 정보는 : 필드는 "_id"또는 다른 필드, 나는이 번호를 검색 할 수없는 경우
- 그것은 문제가 나던
- 내가 사용하여 이러한 문서를 삽입하고있어 pymongo
- 내가 (pymongo 또는 MongoDB의 터미널을 사용 중) 다시이 문서를 삽입하려고하면, 나는 중복 키 오류 ...
'인용'하는 나의 해결 방법은 유형에 ** 문자열 ** 변환이었다. 기본적으로, 삽입하기 전에 숫자를 문자열로 변환 한 다음 문자열 값으로 검색하고 완벽하게 작동합니다. 내 추측은 NumberLong과 Mongodb 검색 (아마도 파이썬 해시의 결과와 관련된)의 일부 유형에 약간의 문제가 있다는 것입니다. –