MongoDB는 배열 요소를 쿼리할 때 더 좋습니다. 배열 요소를 쿼리하기 위해 다음 구문을 사용합시다 -
db.yourCollectionName.find({yourArrayFieldName:"yourValue"}).pretty(); 위의 구문은 배열 필드에 "yourValue" 값이 있는 모든 문서를 반환합니다.
개념을 이해하기 위해 문서로 컬렉션을 만들어 보겠습니다. 문서로 컬렉션을 생성하는 쿼리는 다음과 같습니다 -
> db.queryArrayElementsDemo.insertOne({
... "StudentName":"John","StudentFavouriteSubject":["C","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c90c0354afe5c1d2279d694")
}
> db.queryArrayElementsDemo.insertOne({ "StudentName":"Carol","StudentFavouriteSubject":["C","C++"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c90c0434afe5c1d2279d695")
}
> db.queryArrayElementsDemo.insertOne({ "StudentName":"David","StudentFavouriteSubject":["MongoDB","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c90c0584afe5c1d2279d696")
} find() 메서드를 사용하여 컬렉션의 모든 문서를 표시합니다. 쿼리는 다음과 같습니다 -
> db.queryArrayElementsDemo.find().pretty();
다음은 출력입니다 -
{
"_id" : ObjectId("5c90c0354afe5c1d2279d694"),
"StudentName" : "John",
"StudentFavouriteSubject" : [
"C",
"Java"
]
}
{
"_id" : ObjectId("5c90c0434afe5c1d2279d695"),
"StudentName" : "Carol",
"StudentFavouriteSubject" : [
"C",
"C++"
]
}
{
"_id" : ObjectId("5c90c0584afe5c1d2279d696"),
"StudentName" : "David",
"StudentFavouriteSubject" : [
"MongoDB",
"Java"
]
} MongoDB로 배열 요소 쿼리하기 -
> db.queryArrayElementsDemo.find({StudentFavouriteSubject:"Java"}).pretty(); 다음은 출력입니다 -
{
"_id" : ObjectId("5c90c0354afe5c1d2279d694"),
"StudentName" : "John",
"StudentFavouriteSubject" : [
"C",
"Java"
]
}
{
"_id" : ObjectId("5c90c0584afe5c1d2279d696"),
"StudentName" : "David",
"StudentFavouriteSubject" : [
"MongoDB",
"Java"
]
} 위의 샘플 출력을 보면 위의 쿼리는 값이 "Java"인 모든 문서를 반환합니다.