[MONGODB] 하위 문서에 Nodejs 몽고 삽입 - 동적 필드 이름
MONGODB하위 문서에 Nodejs 몽고 삽입 - 동적 필드 이름
{사용자 이름 : '나'기업 : { "yourcompany와": {...}}
나는 사용자 레코드 (사용자 컬렉션)에 회사를 삽입 할, 만들려면 :
{사용자 이름 : '나'기업 : { "yourcompany와": {...}, "mycompany": {...}}
그러나 이름은 동적입니다 ..
var companyid = "mycompany";
.collection('users').findAndModify(
{username: usern},
[['_id', 'asc']],
{$set:{companies:{companyid: { desksmemberships:[] }}}},
{new: true}, function(){...}
이것은 제공합니다 .. {사용자 이름을 '나'기업 : { "yourcompany와": {...}, "회사 ID": {...}}
이걸 어떻게해야합니까?
해결법
-
==============================
1.당신은 프로그래밍 방식 $ 세트 수정을 구축해야 할 것이다 :
당신은 프로그래밍 방식 $ 세트 수정을 구축해야 할 것이다 :
var modifier = { $set: {} }; modifier.$set['companies.' + companyid] = { desksmemberships:[] };
그리고 다음 findAndModify 호출에서 세 번째 매개 변수로 수정 사용합니다.
또한 배열 대신에 포함 된 개체로 회사를 변경하는 것이 좋습니다.
Node.js를 4.x의 업데이트
이제 직접 객체 리터럴에서이 작업을 수행하는 계산 된 속성 구문을 사용할 수 있습니다 :
collection('users').findAndModify( {username: usern}, [['_id', 'asc']], {$set:{['companies.' + companyid]: { desksmemberships:[] }}}, {new: true}, function(){...});
-
==============================
2.나는 꽤 많은 게시물에이 질문에, 그들 중 일부는 매우 컴플렉스 전화 나 미친하지만 당신은이 작업을 수행 할 수 있습니다 (노드 + 몽고)를 본 적이 :
나는 꽤 많은 게시물에이 질문에, 그들 중 일부는 매우 컴플렉스 전화 나 미친하지만 당신은이 작업을 수행 할 수 있습니다 (노드 + 몽고)를 본 적이 :
내 DB 스키마 '일치'는 배열로 설정됩니다. 몽고 데이터에 [match.matchId]을 '2028856183'이된다.
db.update({key: value}, {matches: [{[match.matchId] : match}] }, callback); db.update(what to find, what to change it to, what to do next)
당신은 괄호 안에 어떤 변수를 사용할 수 있습니다.
from https://stackoverflow.com/questions/12184626/nodejs-mongo-insert-into-subdocument-dynamic-fieldname by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 업데이트 arrayFilters와 MongoDB를에서 하위 문서를 중첩 (0) | 2019.12.19 |
---|---|
[MONGODB] 항상 임베디드와 엠버 데이터 다중 계층 구조 (0) | 2019.12.19 |
[MONGODB] MongoDB를 3.x를 드라이버 안드로이드 호환성 (0) | 2019.12.19 |
[MONGODB] 몽고와 모든 문서에서 배열 발생을 계산 (0) | 2019.12.19 |
[MONGODB] 복잡한 (비동기) virtuals에를 몽구스 (0) | 2019.12.19 |