Я сейчас работаю над приложением node (с интерфейсом IOS) и наткнулся на эту проблему. Я использовал mongodb вместе с мангустом. У меня есть этот маршрут /get, который получает правильный идентификатор пользователя и пытается найти все «Voots» с тем же идентификатором пользователя. Вот как выглядит «Вот»:
{
"_id": "59db9fa2659bb30004899f05",
"title": "Pizza!",
"body": "hoppakeeee",
"user": {
"__v": 0,
"password": "$2a$10$Rwb5n7QoKaFaAOW37V0aWeEeYgfn6Uql474ynUXb83lHi7H2CuB1u",
"email": "[email protected]",
"name": "Noelle Schrikker",
"_id": "59db9ecf659bb30004899f04"
},
"__v": 0,
"downVotes": [],
"upVotes": []
},
Как видите, у него есть свойство user
, которое представляет собой объект пользователя, содержащий имя, адрес электронной почты, пароль и _id
.
Я делаю это со своим запросом:
// Send all voots from the specific user
Voot.find({"user._id": userId}, function(err, voots) {
if (err) {
console.log(err);
res.status(400).send(err)
res.end()
}
if (voots) {
res.status(200).send(voots)
res.end()
}
})
Пытаюсь найти все вооты с их user
имеющими свойство userId
(это правильный ID пользователя). Однако это не работает. Я попытался найти его с помощью "user.email"
, который действительно работает. Я думаю, это как-то связано с _
перед id
. Любой комментарий приветствуется!
Вот шема:
var vootSchema = new mongoose.Schema({
title: String,
body: String,
user: {
type: mongoose.Schema.Types,
ref: 'user'
},
upVotes: [String],
downVotes: [String]
})
var Voot = mongoose.model('voot', vootSchema)
Схема пользователя:
var userSchema = new mongoose.Schema({
name: String,
email: String,
password: String
})
var User = mongoose.model('user', userSchema)
Voot
? - person JohnnyHK   schedule 09.10.2017type: mongoose.Schema.Types
не является допустимым определением типа. Это опечатка? - person JohnnyHK   schedule 09.10.2017mongoose.Schema.Types.ObjectId
сохраняется только идентификатор объекта, поэтому я удалилObjectId
, который поместил весь объект пользователя в свойствоuser
. Однако теперь я понял, что вы можете получить доступ к объекту пользователя через этот идентификатор объекта, используя население. - person   schedule 09.10.2017