В настоящее время я пытаюсь запросить коллекцию MongoDB с помощью Mongoose, и у меня возникают проблемы при попытке преобразовать этот запрос в полезный запрос Mongoose.
Запрос CLI MongoDB: db.events.find({}, {'first.points': 1, '_id': 0})
.
Это работает нормально и возвращает то, что я ожидал, когда я запустил это в командной строке, я попробовал несколько методов преобразования этого в запрос Mongoose, мои попытки до сих пор:
Попытка #1
Events.find({}).populate('first').exec(function(err, events){
if(err) { console.log(err) }
console.log(events);
});
Это не работает и выдает ошибку Cast to ObjectId failed for value "10" at path "_id" for model "Event"
при запуске сервера узла.
Попытка # 2
Event.find({'first.points': "10"}).populate('first').exec(function(err, events)
Это не выдает никаких ошибок, и возвращает значения, которые я ожидал, однако я пытаюсь вернуть все значения first.points
для всех событий, и я не могу этого сделать.
Попытка # 3
Event.find({'first.points': "$all"}).populate('first').exec(function(err, events)
Это также не работает, и это была моя последняя попытка решить эту проблему, на этот раз снова выдается ошибка, говорящая Cast to number failed for value "$all" at path "first.points" for model "Event"
Я не уверен, что еще можно попробовать для этого, я не уверен, какчтобы вернуть все значения без указания того, что искать.
РЕДАКТИРОВАТЬ
Модель для событий включена ниже
var eventsSchema = new mongoose.Schema({
name: String, // The event name, with data type String
date: Date, // Date with data type Date
first: {
points: Number, // The points awarded to the first place with data type Number
house: String
},
second: {
points: Number,
house: String
},
third: {
points: Number,
house: String
},
fourth: {
points: Number,
house: String
}
});
Любая помощьценится.