1

우리는 아래처럼 디자인 할 수 있습니다 :디자인 장고 MongoDB를 엔진 외래 키 목록

# Model and its field 
class Group(models.Model): 
    members = ListField(models.ForeignKey(User)) 

# Query 
Group.objects.raw_query({'members': ObjectId(request.user.id)}) 

하나는 위에서 MongoDB의 ID 목록과 필드 "회원"을 저장합니다 mongodb. "members" : [ ObjectId("4e46434741b6994c70000000") ]

처럼 우리는 또한 문자열로 MongoDB의 ID를 저장할 수 있습니다 :

# Model and its field 
class Group(models.Model): 
    members = ListField(models.CharField(max_length=24)) 

# Query 
Group.objects.filter(members=request.user.id) 

하나는 위의 MongoDB의에서 문자열 목록으로 필드 "회원"을 저장합니다. Like "members" : [ "4e46434741b6994c70000000" ]

제 질문은 mongodb 쿼리에 대해 더 효율적인 방법 중 하나입니다.

답변

2

외래 키가 도전적입니다. 가리키는 모델은 objectid를 _id로 사용하므로 관계를 문자열로 저장하여 목록의 각 항목에 대해 문자열에서 objectId로 변환해야합니다.