Поиск внутри модели Mongoose с узлами node.js и express.js

В мангусте у меня есть эта модель:

var userschema = new mongoose.Schema({

  user: String,   
  following: [String],
  followers: [String]

}); 

var UserModel =  db.model('UserModel', userschema);

Но я не знаю, кто ищет внутри пользователя поиск внутри следующего массива и последователей. Легко, я могу сделать это UserModel.find ({user: req.session.user}, function (err, user) {[...]}) Но внутри этого я хочу найти определенную строку внутри массивов следующих и последователей . Я могу сделать это с помощью для цикла , но я думаю, что если у меня есть много строк внутри массива, поиск будет медленным или даже проблематичным. Можно сделать это ?:

UserModel.findOne({ user: req.session.user }, function(err, user){

   if (err) throw err;    

     user.findOne({ following: randomstring }, function(err, nuser){

        if (err) throw err;

     });

});

Я думаю, что этот код не будет работать, но, возможно, есть способ сделать то, что я хочу, не используя for loop . Любое решение ...?

0
nl ja de

1 ответы

Нет, вы не можете вызвать findOne в экземпляре документа user . Вместо этого вы можете указать следующее в основном вызове UserModel.findOne , например:

UserModel.findOne({ user: req.session.user, following: randomstring }, 
    function(err, user){ ...

В обратном вызове пользователь будет установлен только в том случае, если этот пользователь следил за randomstring .

Конечно, вы также можете использовать array.indexOf , чтобы легко найти массив в коде:

if (user.following.indexOf(randomstring) !== -1) {
   //user is following randomstring
}
0
добавлено
pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Node.js — русскоговорящее сообщество
Node.js — русскоговорящее сообщество
4 160 участник(ов)

Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было комфортным. Правила: https://rudevs.network/ByaMH6un7 См. также: @js_ru, @react_js, @angular_ru, @vuejs_ru, @devops_ru Вакансии и поиск работы: @javascript_jobs и @nodejs_jobs

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078

Node: русскоязычное сообщество
Node: русскоязычное сообщество
28 участник(ов)

Независимое сообщество node разработчиков на русском языке. Правила: https://node-chat.ru/ Партнеры: @react_ru @ru_vuejs @nuxtjs_ru @ru_docker @nlp_ru