mongodb 버전 2.6.1에서 아래 쿼리를 사용하여 mongo 데이터를 필터링하려고하는데 오류가 발생합니다.
MongoDB의 버전 2.4.6 (작업)
> db.BC_1839.find({data: {$elemMatch:{$where : "this.First_name.toLowerCase().indexOf('kim') ==0"}}});
출력 :
{
"_id" : ObjectId("53719a9d5b9e5c8c110001b9"),
"data" : [
{
"First_name" : "Kimberely",
"Last_name" : "Weyman",
"Company_name" : "Scientific Agrcltl Svc Inc",
"Address" : "7721 Harrison St",
"City" : "Kingsway West",
"State" : "NS",
"Post" : "2208",
"Phone1" : "02-7091-8948",
"Phone2" : "0441-151-810",
"Email" : "[email protected]",
"Web" : "http://www.scientificagrcltlsvcinc.com.au",
"active" : "true"
}
],
"history" : [
{
"timestamp" : "2014-05-13 06:07:55",
"event": "creation",
"createdby" : "Srikesh Infotech",
"creation_data" : [
{
"crm_base_contact_id" : "1839",
"crm_imported_files_id" : "1464"
}
]
},
{
"timestamp" : "2014-05-13 06:09:05",
"event" : "Task",
"createdby" : "Srikesh Infotech",
"Task_data" : [
{
"Campaign ID" : "193",
"Campagin Name" : "Test Campa1"
}
]
}
],
"ref" : [
{ "crm_base_contact_id" : "1839", "crm_imported_files_id" : "1464" }
]
}
MongoDB의 버전 2.6.1 (작동하지 않음)
> db.BC_1839.find({data: {$elemMatch:{$where : "this.First_name.toLowerCase().indexOf('kim') ==0"}}});
출력 :
error: {
"$err" : "Can't canonicalize query: BadValue $elemMatch cannot contain $
where expression",
"code" : 17287
}
동일한 쿼리는 mongodb 버전 2.4.6에서 실행되지만 mongodb 버전 2.6.1에서는 실행되지 않습니다. 왜 ???
가능한 복제본 [$ Where - Mongo PHP 코드에서 작동하지 않음] (http://stackoverflow.com/questions/23730647/where-not-working-in-mongo-php-code) –
게시하지 마십시오 이전 질문에 아직 답변이 없기 때문에 동일한 질문을합니다. –
다른 MongoDB 버전을 실행하지 않는 동일한 쿼리를 왜 설명 할 수 있습니까? –