Оболочка MongoDB: запрос BinData по типу

Я пытаюсь запросить большую коллекцию по полю _id, которое использует BinData.

Некоторые из этих идентификаторов используют BinData типа 4:

"_id" : BinData(4,"CNDF66qIlCY92q1vFAAAAQ==")

Хотя некоторые используют BinData типа 3:

"_id" : BinData(3,"CNDF66qJ29g92q1vFAAAEw==")

Мне нужно найти все поля _id, которые имеют BinData.type = 3, и мне было интересно, удалось ли кому-нибудь сделать такой запрос в оболочке MongoDB.

Любая помощь будет принята с благодарностью!


person Rwprice    schedule 12.06.2014    source источник


Ответы (1)


Вы можете сделать это с помощью $where стиль запроса, поскольку объект BinData имеет метод .subtype(), который возвращает этот «тип»:

db.collection.find(function(){ return this._id.subtype() == 3 })

Обратите внимание, что «тип» 3 BinData по умолчанию будет генерироваться новым UUID помощник, доступный для оболочки из MongoDB 2.6:

UUID("0123456789abcdeffedcba9876543210")
BinData(3,"ASNFZ4mrze/+3LqYdlQyEA==")
person Neil Lunn    schedule 12.06.2014