2015-09-03 3 views
0
var UserSchema = Schema (
{ 
    android_id: String, 
    rooms: [{ type: Schema.Types.ObjectId, ref: 'Chatrooms'}], 
    location: {country: String, state: String, coordinates: { latitude: String, longitude: String}} 
}); 

var RoomSchema = Schema 
({ 
    Roomname: {type: String}, 
    ids: {type: Array}, 
}); 


Users 
    .find({android_id: {$ne: userID}, 'location.state': LocationArray.state, 'location.country': LocationArray.country}) 
    .populate({ 
     path: 'rooms', 
     match: {'rooms.ids': {$nin: [userID]}}, 
     select: 'ids' 
    }) 
    .exec(function(err, found) { 
    }) 

Я хочу найти всех пользователей, исключая себя в штате и стране, где я не в массиве ids с ними. Возможно ли это с заполнением?как отфильтровать результаты поиска модели.find с помощью model.populate результатов запроса в мангусте?

ответ

2

Надеюсь, что это может вам помочь.

Users 
.find({android_id: {$ne: userID}, 'location.state': LocationArray.state, 'location.country': LocationArray.country}) 
.populate({ 
    path: 'rooms', 
    match: {'ids': {$nin: [userID]}}, 
    select: 'ids' 
}) 
.exec(function(err, found) { 
if(found){ 
     vettings = found.filter(function (doc) { 
      return doc.ids; 
     }); 
    } 
}) 
+0

спасибо, но мне было интересно, если есть способ, чтобы дополнительно фильтровать результаты запроса 'Users.find' с' .populate', прежде чем начать обрабатывать массив. –

+0

если это невозможно, я буду использовать ваш метод, спасибо. –

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

  • Нет связанных вопросов^_^