Avatar
0
Tran Duy Tung Beginner
Tran Duy Tung Beginner
Convert từ String sang objectId MongoDB
Em chào anh.<p> Em đang dùng Lookup trong MongoTemplate để join 2 collection như sau: </p> <p> public List<UserWithDepartment> findUsersWithDepartments() { </p> <p> ProjectionOperation projectionOperation = Aggregation.project() </p> <p> .and(ConvertOperators.valueOf("userId").convertToObjectId()).as("userId"); </p> <p> Aggregation aggregation = Aggregation.newAggregation( </p> <p> projectionOperation, </p> <p> Aggregation.lookup(departmentCollectionName, "_id","userId","departments") </p> <p> ); </p> <p> AggregationResults<UserWithDepartment> results = mongoTemplate.aggregate( </p> <p> aggregation, userCollectionName, UserWithDepartment.class); </p> <p> return results.getMappedResults(); </p> <p> } </p> <p> Vấn đề của em là "_id" kiểu dữ liệu objectId còn "userId" kiểu dữ liệu String vì vậy em cần convert về 1 kiểu dữ liệu nhưng đang gặp lỗi này: Unrecognized expression '$toObjectId' </p> <p> Anh đã gặp lỗi này chưa và cách khắc phục là gì ạ. </p> <p> Em cảm ơn ạ </p>
Answer
Avatar
1
ptitdev Beginner
ptitdev Beginner
Có cần thiết lưu trữ cache dữ liệu trong mongodb ?
Em chào anh , em có 1 câu hỏi là ví dụ e cần vào mongo để lấy 1 dữ  liệu , cụ thể e đang lưu trong mongo các session chat , mỗi lần chat e cần lấy session chat đấy ra để kiểm tra thông tin và lưu chat message theo session chat , thì việc mỗi lần chat đều phải chọc vào mongo , dẫn đến cần vào mongo khá nhiều , vậy e còn cần cache lên redis dữ liệu của session chat đấy ko ạ , e thấy mongo query cũng khá nhanh rồi ? Mong được anh trả lời?
Answer
Avatar
0
ptitdev Beginner
ptitdev Beginner
Cách tối ưu hóa cache key trên redis
Em có 1 api gồm các param như idItem , idUser , page , size . Cho em hỏi nên lưu key trên redis như nào để tối ưu hóa số lương key , thường sẽ lưu key cache như nào nếu nhiều param ạ. <p> </p> <p> Em cảm ơn </p>
Answer