programing

어레이 필드에 고유한 값 또는 MongoDB 내의 다른 어레이가 포함되어 있는지 확인하는 방법

stoneblock 2023. 4. 4. 20:51

어레이 필드에 고유한 값 또는 MongoDB 내의 다른 어레이가 포함되어 있는지 확인하는 방법

나는 지금 mongodb를 사용하고 있다.

블로그 포스트 컬렉션이 있는데tags예를 들어 배열인 필드입니다.

blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']

이 검색은 어떻게 하면 됩니까?

  1. 포함하다tag1
  2. 포함하다['tag1','tag2']
  3. 다음 중 하나를 포함하다['tag3', 'tag4']

이것을 시험해 보세요.

db.blogpost.find({ 'tags' : 'tag1'}); //1
db.blogpost.find({ 'tags' : { $all : [ 'tag1', 'tag2' ] }}); //2
db.blogpost.find({ 'tags' : { $in : [ 'tag3', 'tag4' ] }}); //3

제 경험에 따르면 (2)의 경우 다음 솔루션이 "$all"을 사용하는 솔루션보다 훨씬 빠릅니다.

db.blogpost.find({ $and: [ {tags: 'tag1'} ,{tags: 'tag2'} ] });

솔직히 왜 그런지는 모르겠어요아는 사람 있으면 관심 있을 것 같아요.

언급URL : https://stackoverflow.com/questions/5366687/how-to-check-if-an-array-field-contains-a-unique-value-or-another-array-in-mongo