Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

MongoDB로 배열 요소를 쿼리하시겠습니까?

<시간/>

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"인 모든 문서를 반환합니다.