2014-07-10 1 views
1

У меня есть документы, как это в моем MongoDBНайти документы, которые содержат определенное поле

{ "_id" : ObjectId("5342b21c0b01a29f6a000b4b"), "vec" : { "1" : 0.97, "4" : 0.11, "5" : 0.07 } } 
{ "_id" : ObjectId("5342b1b90b01a29f6a000b32"), "vec" : { "1" : 0.84, "9" : 0.06 } } 
{ "_id" : ObjectId("5342b1da67fbc7a16a000b52"), "vec" : { "2" : 0.71, "4" : 0.57, "8" : 0.52, "9" : 0.19 } } 
{ "_id" : ObjectId("5342b1f6df2a17a06a000b6b"), "vec" : { "5" : 0.96, "6" : 0.35, "9" : 0.12 } } 

и если я хочу, чтобы выбрать только документы, которые содержат «4» в VEC поле я могу это сделать:

db.collection.find({"vec.4" : {$gte : 0}}) 

, но с использованием этого кода я автоматически предполагаю, что все значения больше нуля. Что делать, если нет - как выбрать документы с полем «4» независимо от их значения?

ответ

1

Вы можете использовать $exists для этого:

db.collection.find({"vec.4" : {$exists : true}})