이 mongoDB C# 드라이버를 사용하여 mongoDB에서 데이터를 쿼리하는 응용 프로그램은 다음과 같습니다.mongoDB로 문서 검색을 일괄 처리하는 방법은 무엇입니까?
public void main()
{
foreach (int i in listOfKey)
{
list.add(getObjectfromDB(i);
}
}
public myObject getObjFromDb(int primaryKey)
{
document query = new document();
query["primKey"] = primaryKey;
document result= mongo["myDatabase"]["myCollection"].findOne(query);
return parseObject(result);
}
내 로컬 (개발) 컴퓨터에서이 방법으로 100 개 개체를 얻는 데는 1 초도 걸리지 않습니다. 그러나 최근에 데이터베이스를 인터넷상의 서버로 옮겼습니다.이 쿼리는 동일한 수의 개체에 대해 실행하는 데 약 30 초 정도 걸립니다.
또한 mongoDB 로그를 보면이 쿼리를 수행하기 위해 DB에 약 8-10 개의 연결을 여는 것으로 보입니다.
그럼 내가하고 싶은 건 기본 데이터베이스의 배열에 대한 쿼리를 데이터베이스에 저장하고 한 번에 모두 다시 가져온 다음 가능한 한 한 연결을 사용하여 루프에서 구문 분석을 수행하는 것입니다.
이렇게하려면 쿼리를 어떻게 최적화 할 수 있습니까?
고마워,
- 마이클
이것은 $가 아니거나 값이 아닌 기준 (표현식) 배열을 포함하고 있습니다. –