2016-09-13 2 views
1

을 포함하는 기준에 따라 문서를 찾을 수 없습니다 : 나는 어떤 결과를 다시 얻을 : 내가 그런 수집 목록을 문자열 OBJECTID 값

{username: 'somename', 
friendId: '57d725d6b8b144044602bf74' <-- This a reference objectId to another doc 
} 

내가 기준 { '57d725d6b8b144044602bf74'friendId}와 내 컬렉션에 문서를 조회

. 다른 필드 쿼리가 정상적으로 작동합니다.

값이 단지 문자열 일지라도 ObjectId('57d725d6b8b144044602bf74')으로 값을 변환하려고했으나 아직 이동하지 않았습니다.

왜 그 유형의 문자열로 검색하지 못합니까?

+0

언어를 사용하고 계신가요? 내 추측은 당신이 좋아하는 편집자/mongoshell 찾기와 함께 일하고 있다는 것입니까? – HoefMeistert

+0

자바 스크립트를 사용하고 있습니다. 1) CLI에서, 2) 노드 일반 자바 스크립트에서 3) 몽구스 스키마와 모델을 사용하여 쿼리하려고했습니다 –

+0

몽구스 스키마를 제공 할 수 있습니까? 그리고 당신의 코드 부분과 쿼리? – HoefMeistert

답변

0

당신은 mongoDB에서 '자체 조인'을 시도하고 mongodb에 의해 생성 된 _id 필드에 의존하는 것 같습니다.

사용자 정의 _ID 필드를 문서에 제공하는 것이 좋습니다.

예 :

{_id:"alex", name:"alex", friendID:""} 
{_id"john", name"john", friendID:"alex"} 

한 다음 friendID 필드에서 쉽게 쿼리를 실행할 수 있습니다. 한 발을내어 이것이 당신의 요구 사항에 적합한 지보십시오.

+0

그럴 수도 있지만 ObjectId와 비슷한 값을 가진 문자열이 결과를 생성하지 않는 이유가 혼란 스럽습니다. 기술적으로 이것은 단순한 문자열이며, 해당 필드에 어떤 값이 있는지는 중요하지 않습니다. 또한 mongo cli에서 쿼리를 정규 표현식으로 만들면 내 레코드를 찾을 수 있습니다. {friendId :/57d725d6b8b144044602bf74 /}하지만이 방법은 여전히 ​​코드에서 실패합니다 (nodejs + mongoose). –

관련 문제