У меня возникают проблемы с созданием новых документов в MongoDB с использованием Mongoose.Должен ли новый документ в MongoDB быть точно таким же, как схема?
Должны ли новые документы быть точно такими же, как схемы?
Я имею в виду у меня есть следующие схемы:
ar userSchema = new Schema({
userID: Number,
userName: String,
userEmail: String,
teams:Array,
fbUID: String,
googleUID: String,
twitter: String
});
Но чтобы создать новый пользовательский документ я не имею все поля, так что мой документ не будет содержать все поля в приведенной выше схеме.
Например, я добавляю новый документ, основанный на Схеме выше. Мой Док:
var users = mongoose.model('users',userSchema);
var user = new users({
userID: id, //give the id of the next user in Dbase
userName: userName,
userEmail: 'userEmail',
teams:[],
fbUID: '1234'
});
user.save(function(err, user){
if(err) return console.error(err);
log.d("user salved", user);
});
Так что, я не имею все поля, и я не мог сохранить любой док до сих пор.
Имеет ли значение, если у меня нет всех полей в Схеме в новом документе?
UPDATE:
и вторая проблема заключается в том, что я получаю один из них:
fbUID,
googleUID,
twitter
через функцию, и я не знаю, какой из них я получаю, так Я пытаюсь сохранить документ таким образом:
function salveUser(userName, socialMediaType, socialMediaID){
var id;
users.count(function(err, count){
if(err){
log.d("Err in counting files")
}
id = count;
});
var user = new users({
userID: id, //give the id of the next user in Dbase
userName: userName,
userEmail: 'userEmail',
teams:[],
socialMediaType : socialMediaID
});
user.save(function(err, user){
if(err) return console.error(err);
log.d("user salved", user);
});
currentSession = sessionOBJ.login(id, socialMediaID);
return currentSession;
}
}
Вот почему я хотел бы знать, если Mongoose переключит ключ в документе по слову, которое я получаю в своей функции, или если он использует точное слово, которое я там помещаю, в данном случае «socialMediaType».
Кто-нибудь знает?
Ваш код выглядит отлично. Можете ли вы включить точное исключение, которое вы получаете? –
Да. Я уточню вопрос. – debeka