2013-04-25 3 views
1

По существу, можно найти документы на основе этого документа, используя $ in. Например сказать, что я имел:Mongodb find, если существует поле, в котором

array(
'item.1', 
'item.2', 
'item.3 
) 

возвратит документ, который есть:

{ 
    item { 
     1: { 

     } 
    } 
} 
{ 
    item { 
     2: { 

     } 
    } 
} 
{ 
    item { 
     3: { 

     } 
    } 
} 

Я знаю, что если бы я был один, я мог бы использовать db.inventory.find({ qty: { $exists: true, $nin: [ 5, 15 ] } }), но как бы я сделать это с $ в?

+0

Непонятно, что вы просите. Упомяните, что вы ожидаете, и вопрос, который у вас есть –

+0

Я не уверен, где «qty» вошло в эту дискуссию ... –

+1

Thats from the mongodb documents for $ существует – Jacinto

ответ

3

Вы можете использовать запрос этой формы:

db.collection.find ({ $or : [ 
      {"item.1":{$exists:true}}, 
      {"item.2":{$exists:true}}, 
      {"item.3":{$exists:true}} 
] }); 

Это будет возвращать любой документ, который имеет одну или несколько «item.X» в данном случае 1, 2 или 3 набора.

+0

Отлично работает так сильно – Jacinto

Смежные вопросы