Я работаю над приложением чата, и каждое событие в разговоре имеет поле с именем отправитель - выглядит так:
var eventSchema = Schema({
sender: {
type: {}, //username && user_id fields
required: true
}
}
Каждый раз, когда создается Событие, я передаю объект, который выглядит следующим образом для поля отправителя:
{
username: String,
user_id: ObjectId("")
}
Я уверен, что поле user_id в Event.sender каждый раз имеет тип ObjectId.
Однако в базе данных сохраненные события иногда имеют Event.sender.user_id типа String &&, в других случаях Event.sender.user_id сохранен как тип ObjectId ().
{
username: String,
user_id: ObjectId("") // sometimes it saves like this
}
{
username: String,
user_id: String // other times it saves like this
}
Изменение происходит довольно часто, и есть события, отправленные одним и тем же пользователем, проходящие через одну и ту же функцию контроллера в течение 10 минут, демонстрируя это изменение.
Есть ли в Mongoose определенное поведение, которое я не учитываю и которое влияет на то, как ObjectIds сохраняются в поле смешанного типа схемы?
Это происходит при сохранении, а не при обновлении. В систему не вносятся обновления в поле Event.sender.
username
иuser_id
в схему? - person JohnnyHK   schedule 20.11.2014