2016-12-13 4 views
0

У меня есть случай, когда мне нужно выбрать только один документ из коллекции с помощью мангустаКак выбрать случайный документ из коллекции с помощью мангуста

В Монго оболочки мы используем его как

db.user.find().limit(1)

{ 
"_id": "56fc22f625311b661becefb5", 
“activities”: [...], 
"lastName": “patrick”, 
"firstName": "John”, 
"city": “Chennai”, 
"state": “TAMILNADU”, 
"rollnumber": "123456789" 
} 

Как это сделать, используя мангуст, мне нужно выбрать только конкретное поле, такое как rollenumber, указать не все поля

Я пробовал это как

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/connector', function(err){ 
if(err) throw err 
}); 
var Schema = mongoose.Schema; 
var userSchema = new Schema({rollnumber : Number}); 
module.exports = mongoose.model('user', userSchema,'user'); 
var a = user.find().limit(1); 
return a; 

ответ

0

Как сказано в документации Mongoose (http://mongoosejs.com/docs/queries.html):

Любой метод модель, которая включает определение условий запроса могут быть выполнены двумя способами:
Когда функция обратного вызова:
- просеивают, операция будет выполнена немедленно с результатами, переданными на обратный вызов.
- не передается, возвращается экземпляр Query, который предоставляет специальный интерфейс построителя запросов.

Поэтому я предлагаю вам попробовать что-то вроде этого, с обратного вызова функции:

let user = mongoose.model('user', userSchema); 
module.exports = user;  

user.find({}, 'rolenumber state') 
    .limit(1) 
    .exec((err, a) => { 
     if (err) console.log(err); 
     return a; 
    }); 

Не уверен, что для случайной стороны от вас вопроса.

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