2013-01-29 3 views
0

mongoose로 MongoDB를 가지고 놀고 있는데, 콜렉션에있는 오브젝트 내에서 검색을 구현하려고하는 약간의로드 블록이 있습니다.mongo 콜렉션 내에서 오브젝트 내 검색하기

var schema = mongoose.Schema({ 
    form_id: Number, 
    author: Number, 
    data: String, 
    files: String, 
    date: { type: Date, default: Date.now }, 
}); 

data는/키 값의 단지 JSON 개체입니다 :

그래서 나는 다음과 스키마가 있습니다.

기록의 예 항목 : 나는 데이터 객체 내부에 특정 값을 검색하려면 어떻게합니까

{ 
"form_id" : 5, 
"author" : 1, 
"data" : " 
    {\"staff\":\"Joe Blow\", \"date\":\"25th Jan 2013\"}", 
"_id" : ObjectId("5101fd4ee6ca550000000003"), 
"date" : ISODate("2013-01-25T03:34:38.377Z"), 
"__v" : 0 
} 

?

db.forms.find({form_id: 5, data: /Joe/i}); 

을하지만 당신은 확신 : 당신이 정규 표현식 주위에 작은 따옴표를 생략하면 나는 다음과 같은 있지만 행운을 :(가지고 있지 뭔가를 할 노력하고있어

db.forms.find({form_id: 5, data: '/Joe/i'}); 

답변

2

그것을 작동합니다 객체 대신 JSON 문자열을 포함하는 data 줄까? 객체는 당신에게 훨씬 더 많은 유연성을 제공한다. 어쩌면 당신이 원하는

0

을?

db.forms.find({form_id: 5, "data.staff": /Joe/i}); 
양식의 '데이터'속성이 개체 인 경우

그리고 그것은 더 나은 방법입니다.

관련 문제