아래의 쿼리를 생성하기 위해 MongoDB 드라이버를 사용하고 있습니다. 두 코드의 기능이 다른 점은 무엇입니까?MongoDB 자바가 정규식을 사용하여 중첩 된 객체를 찾습니다.
0을 반환합니다. 주소 : { "houseBldgNum"}
db.students.count({ "studentName" : { "$regex" : "(.+)?JAN(.+)?" , "$options" : "i"} , "address" : {"houseBldgNum" : { "$regex" : "(.+)3(.+)?" , "$options" : "i"} }})
반환 2; address.houseBldgNum
db.students.count({ "studentName" : { "$regex" : "(.+)?JAN(.+)?" , "$options" : "i"} , "address.houseBldgNum" : { "$regex" : "(.+)3(.+)?" , "$options" : "i"} })
데이터 : 내가 두 코드가 같은 결과를 반환해야 함을 기대하지만 아니에요
{
"studentName":"JAN M",
"address":{
"houseBldgNum":"3"
},
"studentName":"JAN K",
"address":{
"houseBldgNum":"35"
}
}
.
미리 감사드립니다.
답장을 보내 주셔서 감사합니다! 코드에서 보았 듯이 "주소"를 사용했습니다. { "houseBldgNum": { "$ regex": "(. +) 3 (. +)?" , "$ options": "i"}}''단지 주소가 아니라 {{ "houseBldgNum"}' – jzarsuelo
' "주소": { "houseBldgNum"및 주소 : { "houseBldgNum"}'둘 다 키 - 값에 액세스합니다. 'address.houseBldgNum'을 사용하여 주소 내의 값에 액세스해야합니다. { "houseBldgNum": "35" } http://docs.mongodb.org/manual/core/document/ 점 표기법 읽기 이 링크 아래. 이것은 당신을 도울 것입니다 .... – arunb2w