2014-01-13 65 views
0

架構如下(貓鼬造型)

User: 
    tickets: [ 
    _ticket: 
     type: mongoose.Schema.ObjectId 
     ref: 'Ticket' 
    used: 
     type: Boolean 
     default: false 
    ] 

我想找到具有至少一個票與所使用的關鍵用戶是假

WANT

{tickets: [{_ticket: ObjectId('...'), used: true}, {_ticket: ObjectId('...'), used: false}]} 

{tickets: [{_ticket: ObjectId('...'), used: true}, {_ticket: ObjectId('...'), used: true}]} 
{tickets: []} 

沒有MapReduce沒有任何方法嗎? 感謝您的閱讀:)

回答

1

你並不需要使用$elemMatch因爲你只檢查tickets陣列的單個字段:

db.users.find({'tickets.used': false}) 
+0

哦。 $ elemMatch用於多個關鍵條件,謝謝你:P –

0

使用$ elemMatch找到文件

db.users.find({tickets: {$elemMatch: {used: false}}}) 

將匹配在文檔數組對象與使用===虛假