나는 MongoDB의 컬렉션에서 문서의 두 가지 유형이 있습니다문서에 단일 값의 배열을 구별
{ "세션": 키 세션이 간단한 값을 가지고
하나 NumberLong으로을 (" 10000000000001 ")}
키 세션에는 값 배열이 있습니다.
{ "세션"[NumberLong으로 ("10000000000001")]}
즉 두 번째 범주에서 모든 문서를 검색 할 수있는 방법이 있습니까. 가치가 단순하고 단순한 가치가없는 문서 만 제공합니까?
나는 MongoDB의 컬렉션에서 문서의 두 가지 유형이 있습니다문서에 단일 값의 배열을 구별
{ "세션": 키 세션이 간단한 값을 가지고
하나 NumberLong으로을 (" 10000000000001 ")}
키 세션에는 값 배열이 있습니다.
{ "세션"[NumberLong으로 ("10000000000001")]}
즉 두 번째 범주에서 모든 문서를 검색 할 수있는 방법이 있습니까. 가치가 단순하고 단순한 가치가없는 문서 만 제공합니까?
당신은 그것을 위해 쿼리의이 종류를 사용할 수 있습니다
db.collectionName.find({ $where : "Array.isArray(this.sessions)" });
하지만 당신은 더 나은 일관된 일을 유지하기 위해 한 가지 유형의 모든 레코드를 변환하는 것입니다.
이 코드는 다음과 같이 간단 할 수있다 :
db.c.find({sessions:{$gte:[]}});
설명 :
$gt, $lt, $lte
(주의 : 집계 파이프 라인의 표현식에서 동일한 이름을 가진 운영자와 다른 동작)은 동일한 기능을합니다. 나는 MongoDB V2.4.8, V2.6.4에서 이것을 증명했다.
@AlexeiKosov 나는 일이 일관되어야한다는 데 동의합니다. 이 상태는 버그의 결과입니다. –