MongoDB mongoexport query

mongodb, mongodb-query

Solution

You can use the following as your query:

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

$and "performs a logical AND operation on an array of two or more expressions (e.g. , , etc.) and selects the documents that satisfy all the expressions in the array."

$exists checks if the specific field is present in the document.

Also, as it is being pointed out by Vijay, in your description you mention you want xid > 0. You shouldn't be using $ne (not equal), but $gt (greater than).

Problem

I have a collection of the following form in MongoDB. As you can see some documends have two members "id" and "xid" and some have only 1 "id" (aside from the Object _id) ``` [ { "id" : 1, }, { "id" : 2, }, { "id" : 3 "xid": 300 } ] ``` I want to create a mongoexport statement that exports to a csv only documents with id's AND xid's with the value of xid > 0 I currently have the following command: ``` mongoexport -h host -u user -p pass --db database --collection collections --csv --fields id,xid --query '{"xid":{"$ne":0}}' --out rec.csv ``` However this also exports documents that have an id without an xid. So i get something like ``` xid, id 12, 3 ,4 14, 5 ,3 ,2 12, 5 ``` etc. Is there a way to export documents that only have both id and xid?

Original source

Related problems