mongodb에서 임베디드 문서를 업데이트하려고 시도하는 동안 꽤 문제가 있습니다. 나는 두 가지 방법을 시도해 보았지만 둘 다 작동하지 않았습니다. 어쨌든 내 스키마는 다음과 같이 보입니다 (업데이트하려는 임베디드 문서가 혼합 유형이라는 점에 유의할 수 있음).몽구스가 임베디드 문서를 업데이트하지 않습니다.
var UserModel = new mongoose.Schema({
account: String,
salt: String,
password: String,
highlight_words: String,
networks: {},
ip: String,
ident: String,
is_connected: Boolean,
account_type: String
});
나는이 2 가지 코드 스 니펫으로 '네트워크'를 업데이트하려고 시도했지만 작동하지 않습니다. 나는 내 머리카락을 꺼내려고하고있다. (내가) (저장 콜백을 추가하는 시도했습니다, 그리고 오류없이 실행 주) 어떤 도움을 주시면 감사하겠습니다
self.userModel.findOne({account: key}, function(err, doc) {
doc.networks = self.client_data[key]['networks'];
doc.markModified('networks').save();
});
self.userModel.update({account: key}, {networks: self.client_data[key]['networks']}, function(err) {});
그리고! 감사!
편집 :문제는 개체가 분명히이 좋아하지 않았다 그래서 {'some.thing': {more: 'stuff'}}
같았다이었다. 이해할 수있다!
'self.client_data [키] [ '네트워크'] '의 값이 무엇입니까? 디버깅을 돕기 위해 일부 리터럴로 바꾸십시오. – paulmelnikow
그것은 꽤 큰 물체입니다.하지만 사실을 알고 있습니다. 나는 그것을'doc.networks = {test : 123};으로 바꾸려고 시도했지만 여전히 문서를 저장하지 않았다. – rickibalboa
첫 번째 버전에서도 나는 추측하고 있나? 어떤 일이라도 일치하지 않을 수도 있습니다. 'delete ({account : key}) '가 작동합니까? – paulmelnikow