Search code examples
c#mongodbmongodb-.net-driver

MongoDump query with BinData


The Mongodump documentation specifies you can dump using a specific query

i.e.

mongodump --host localhost --db mydb --collection testCollection --query "{SomeKey: 'some value'}"

I'm storing _ids fields as BinData, is it possible to query on this?

I've tried

mongodump --host localhost --db mydb --collection testCollection --query "{_id: 'BinData(3,ryBRQ+Px0kGRsZofJhHgqg==)'}"

With no luck.


Solution

  • This needs a lot of escaping, unfortunately. Also, you'll have to use the $binary representation instead, e.g.

    mongodump --host localhost --db test --collection bd --query 
    "{\"_id\" : { \"$binary\" : \"ryBRQ+Px0kGRsZofJhHgqg==\", \"$type\" : \"03\" } }"
    

    Note that $type must be a hex string, not a number.

    In linux, you'll also have to escape the $ to \$.