Я пытаюсь выполнить собственный запрос MongoDB find
через свойство Mongoose Model
. Я не предоставляю обратный вызов, поэтому я ожидаю, что find вернет объект Cursor
, но вместо этого он вернет undefined
. Согласно Mongoose docs, используемый драйвер доступен через YourModel.collection
, и если я переключусь на чисто собственный код драйвера, find
действительно возвращает Cursor
, поэтому я не могу понять, что происходит.Поиск драйверов от модели Mongoose не возвращается Курсор
Вот фрагмент кода, который воспроизводит проблему:
var db = mongoose.connect('localhost', 'test');
var userSchema = new Schema({
username: String,
emailAddress: String
});
var User = mongoose.model('user', userSchema);
var cursor = User.collection.find({});
// cursor will be set to undefined
Я попытался шагнуть в код с узлом-инспектор, но это не позволяя мне. Любая идея, что я делаю неправильно?
А, это объясняет это. Спасибо, Аарон. Мотивация для этого была просто экспериментированием во время тестирования производительности. И когда это не сработало, как я ожидал, я не мог бы отпустить его, пока не понял, что происходит. – JohnnyHK
Для тех, кто найдет это и не уверен, что с ним делать, минуя mongoose, подобный этому, и используя собственный драйвер, вернет курсор, который вам нужно будет превратить в массив, если вы хотите его использовать (например, res.json (doc) или что у вас есть ... User.collection.find ({}, function (err, cursor) { cursor.toArray (function (err, doc) { // делать что-то с doc }) ; }); –