사용자 지정 사용자 데이터에 액세스 - Node.js SDK
Atlas App Services 를 사용하여 사용자에 대한 임의의 사용자 지정 데이터를 저장 수 있습니다. 예를 예시 사용자의 기본 설정 언어 , 생년월일 또는 현지 시간대를 저장 수 있습니다. 이 데이터를 쓰고 읽기 전에 백엔드 에서 사용자 지정 사용자 데이터 를 활성화 해야 합니다. 학습 보려면 사용자 지정 사용자 데이터 활성화를 참조하세요.
시작하기 전에
사용자 지정 사용자 데이터를 사용하려면 먼저 App Services에서 사용자 지정 사용자 데이터를 활성화해야 합니다.
사용자 지정 데이터를 적용할 사용자를 만듭니다 .
사용자 지정 사용자 데이터 읽기
User
객체의 customData 속성에서 사용자 지정 사용자 데이터를 검색합니다.
const customUserData = app.currentUser.customData; console.log(customUserData);
Atlas App Services는 기본 데이터가 변경될 때 User.customData
값을 즉시 업데이트하지 않습니다 . 대신 Atlas App Services는 사용자가 액세스 토큰 을 새로 고칠 때마다 또는 refreshCustomData() 를 명시적으로 호출할 때마다 최신 버전의 사용자 지정 사용자 데이터를 가져와서 앱에 최신 사용자 지정 사용자 데이터가 있는지 확인합니다.
const updatedCustomUserData = await user.refreshCustomData(); console.log(updatedCustomUserData);
참고
사용자 객체의 customData
필드는 노드 애플리케이션에서 읽기 전용입니다.
MongoClient를 사용하여 사용자 지정 사용자 데이터에 쓰기
MongoDB Atlas 서비스 및 mongoClient 를 통해 표준 CRUD 작업을 사용하여 사용자의 사용자 지정 데이터에 액세스할 수 있습니다. 다음 예제에서는 사용자의 사용자 지정 데이터를 업데이트하여 사용자의 favoriteColor
을(를) 분홍으로 변경합니다.
// A user must be logged in to use a mongoClient const user = app.currentUser; const mongo = user.mongoClient("mongodb-atlas"); const collection = mongo.db("custom-user-data-database").collection("custom-user-data"); // Query for the user object of the logged in user const filter = { userId: user.id}; // Set the logged in user's favorite color to pink const update = { $set: { favoriteColor: "pink" }}; // Insert document if it doesn't already exist const options = { upsert: true }; const result = await collection.updateOne(filter, update, options);
참고
클라이언트 또는 사용자 함수에서 사용자 지정 데이터 필드를 수정하려면 사용자 지정 데이터가 저장된 컬렉션에 대한 쓰기 권한을 구성해야 합니다. 애플리케이션의 사용자 지정 데이터에 대한 클라이언트 쓰기 액세스를 제한하려는 경우에도 시스템 함수에서 객체를 수정할 수 있습니다.