지금 mongodb를 사용하고 있습니다.
블로그 포스트 모음이 있고 블로그 포스트에 배열 인 태그가 있습니다. 예 :
blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']
이 검색을 어떻게 수행 할 수 있습니까
- ‘tag1’포함
- [ ‘tag1’, ‘tag2’] 포함
- [ ‘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'} ] });
그러나 솔직히 말해서, 나는 이유가 아닙니다. 누구나 알고 있다면 관심이 있습니다.