2014-01-30 1 views
11

다음 양식이 MongoDB에 있습니다. 당신이 볼 수 일부 documends 내가 mongoexport 문을 만들려면 두 멤버 "ID"와 "XID"일부는 (개체 _id 제외)에만 1 "ID"가MongoDB mongoexport query

[ 
    { 
     "id" : 1, 
    }, 

    { 
     "id" : 2, 
    }, 

    { 
     "id" : 3 
     "xid": 300 
    } 
] 

을 가지고있는 수출 XID의 값으로 아이디의 및 XID의와 CSV 문서 만> 0

나는 현재 다음 명령이 있습니다

mongoexport -h host -u user -p pass --db database --collection collections --csv --fields id,xid --query '{"xid":{"$ne":0}}' --out rec.csv 

그러나이 또한 XID없이 ID를 가지고 문서를 내 보냅니다. 그래서 나는

xid, id 
12, 3 
,4 
14, 5 
,3 
,2 
12, 5 

같은 단지 아이디와 XID 모두가 문서를 내보낼 수있는 방법이 있나요거야?

+0

- 검색어 "{ 'xid': { '$ ne': 0}}"안에 큰 따옴표 바깥 쪽과 작은 따옴표 http://stackoverflow.com/questions/21456714/mongoexport-error-parsing-query –

답변

6

같은이어야한다) 배열의 모든 표현식을 만족하는 문서를 선택합니다. "

$exists은 문서에 특정 필드가 있는지 확인합니다.

또한 Vijay가 지적한 바에 따르면 xid> 0을 원한다는 것을 설명 할 수 있습니다. $ ne (같지 않음)가 아니라 $ gt (보다 큼)를 사용해야합니다.

0

위의 문서에서 그것은 문서의 배열 인 것 같지만, 문서 없이는 액세스하고 있습니다. 표기법. u가 문서에 잘못 액세스하고있는 것 같습니다.

{ $and: [ 
    {xid: {$exists:true}}, 
    {xid:{$gt:0}} 
    ] 
} 

$and "예를 들어, 등 두 개 이상의 표현 (의 배열에 논리 연산을 수행합니다

당신은 당신의 쿼리로 다음을 사용할 수 있습니다 '{"key.xid":{"$ne":0}}'

3

당신은

--query {id: {$exists : true}, xid: {$gt : 0}} 

이 위의 쿼리는 id 필드를 가지고 XID의 값이있는 해당 문서를 반환에 쿼리를 변경할 수 있습니다> 0 그래서 XID뿐만 아니라 id 필드를 가지고있는 문서가있을 경우 해당 서류는 반환되지 않습니다.

7

아래 사용할 수있는 명령

mongoexport -d database_name -c collection_name --csv --query { id:{$exist:true},xid:{$gt:0}} 
0

mongoexport --db DB_NAME --collection COLLECTION_NAME --query '{'이름 ':'Vijil '} "--out file_name.json

+1

일부 설명 추가 –

+0

{ 'Name': 'Vijil', 'Id': 121}, { 'Name': 'Arul', 'Id': 122}, { 'Abish', 'Id': 123}] –

+0

이 컬렉션은 원하는 경우 컬렉션입니다. 조건부를 사용하여 콜렉션을 내보내기, 터미널에서 --query before --out을 사용하여 쿼리 작성 –