저는 mongodb이 좋지 않아 하위 문서를 조작하기가 어렵습니다.배열 필드에 문서 삽입
{
[[email protected]]: [
{
email: '[email protected]',
createdAt: '0000-00-00',
updatedAt: '0000-00-00'
}
],
[[email protected]]: [
{ ... },
{ ... }
]
}
내가 그 콜렉션 '주소록'라고하고, 각 항목은 이메일, 이미지, 그렇게 만든 뭔가 일 같은 주소 정보를 포함하는 배열 유형입니다 : 내가 뭘 원하는이 같은 주소록을 구현합니다.
문제는 어떻게해야할지 모릅니다. $ addToSet 또는 $ push 같은 일부 연산자를 사용해야하는 것처럼 보이지만 올바르게 사용하는 방법을 알지 못합니다. 나는 시도하는 것 : 내가 아는
update({
email: '[email protected]'
}, {
$push: {
'address.$email': {
email: target,
createdAt: new Date(),
updatedAt: new Date()
}
}
})
한 가지 컬렉션을 업데이트하는 옵션을 upsert 사용이 존재하지 않는 경우 새 문서를 만들지 만, 여전히 문서가 생성되지 않습니다되었다. 손을 얹어 주시면 매우 감사하겠습니다.
그래서 mongoDB에 데이터를 바로 푸시하고 싶습니까? – Thinker
이렇게 깊게 문서를 중첩하는 데 어려움이있을 수 있습니다. Mongo는 깊이 중첩 된 문서를 업데이트하는 데 어려움을 겪고 있습니다. –
옳은 길을 가고있다. 기존 문서에서 내용을 추가하거나 제거하기 위해'$ push' 또는'$ pull'을 사용할 것이다. –