2015-12-06 2 views
1

Я пытаюсь выполнить запрос к моей базе данных, как показано ниже:MongoDB фильтр не работает

filter.customerProfile = { $exists: true }; 
console.log("filter: " + JSON.stringify(filter)); 
this.accountsAPI.find(filter, cb); 

в обратный вызов я печать:

console.log('first element: ', JSON.stringify(accounts[0])); 

мой выход:

filter: {"customerProfile":{"$exists":true}} 
first element: {"username":"aabrahams","firstName":"Arthur","lastName":"Abrahams","DOB":"1981-07-11","email":"[email protected]","adminProfile":[{"displayUsername":"Art Abrahams","active":true,"priceEdits":[],"products":[],"productEdits":[],"jobCancellationApprovals":[],"partnerApprovals":[]}],"_id":"TkJNoSogUaJFKIHU"} 

В принципе, он возвращает всех пользователей, а не только те, у которых есть «clientProfile», и какой фильтр я использую, даже не имеет значения. Я попробовал добавить «$ ne»: null, и это не помогло.

+0

Вы можете поделиться лучше сформированный кусок кода? Как то, что это.accountsAPI. – Louy

+0

accountsAPI - это сервис, предоставляемый перьями. –

+0

перья mongo интерфейс export: find (params, cb): void; –

ответ

3

Согласно feathers' documentation вы делаете критерии фильтрации с запроса:

var filter = { 
    query: { 
    customerProfile: { 
     $exists: true 
    } 
    } 
} 
this.accountsAPI.find(filter, cb); 
+0

Yup, который должен это сделать! – ekryski