하자를 정규식 우리는이 같은 구조의 컬렉션이 말 :: 배열의 특정 요소에 대한
{
_id:1,
tag:["speaker","tom"]
},
{
_id:2,
tag:["subject","tomatoes"]
}
{
_id:3,
tag:["subject","space"]
}
내가 같은 특정 요소에 대한 조회 할 수 있습니다
db.tags.find({tag:["speaker","tom"]})
은 지금이다 해당 배열의 초 요소와 일치하는 정규식을 사용하여 쿼리를 수행 할 수 있습니까? 무엇인가 :
db.tags.find({tag:["speaker",/tom.*/]}) ?
분야 tag
에 정규 표현식 (예 : db.tags.find({tag:/sp.*/})
)를 전체 배열을 일치합니다, 나는 고려하기 전에 ... 그것은 단지 두 번째에 검색 할 수있는 방법을 찾고 있어요 그 컬렉션을 재구성해야합니다.
업데이트는 해결 방법은 $all
연산자를 사용하는 것입니다
:
db.tags.find({tag:{$all : ["speaker",/tom.*/]} })
하는 것과 같습니다, 그 이후 할 수있는 올바른 방법 그러나
db.tags.find({ $and: [ { tag: "speaker }, { tags: /tom.*/ } ] }
을 아니다 두 요소 모두 문자열과 정규식을 검색합니다.
예 죄송합니다. 나는이 쿼리가 db.tags.find ({ "tag.1": {$ exists : 1}})를 사용하기 때문에 find와 비슷한 것을 할 수 있다고 생각했기 때문에 그렇게 생각하지는 않습니다. – ThrowsException
절대적으로 : 구원받은 이상 : absolved! – Flint