में अंदर सरणी मैं regex के साथ MongoDB में एक सरणी के अंदर एक प्रश्न करना चाहते हैं, संग्रह इस तरह दस्तावेजों:Regex MongoDB
{
"_id" : ObjectId("53340d07d6429d27e1284c77"),
"company" : "New Company",
"worktypes" : [
{
"name" : "Pompas",
"works" : [
{
"name" : "name 2",
"code" : "A00011",
"price" : "22,22"
},
{
"name" : "name 3",
"code" : "A00011",
"price" : "22,22"
},
{
"name" : "name 4",
"code" : "A00011",
"price" : "22,22"
},
{
"code" : "asdasd",
"name" : "asdads",
"price" : "22"
},
{
"code" : "yy",
"name" : "yy",
"price" : "11"
}
]
},
{
"name" : "name 4",
"works" : [
{
"code" : "A112",
"name" : "Nombre",
"price" : "11,2"
}
]
},
{
"name" : "ee",
works":[
{
"code" : "aa",
"name" : "aa",
"price" : "11"
},
{
"code" : "A00112",
"name" : "Nombre",
"price" : "12,22"
}
]
}
]
}
तब मैं ने एक दस्तावेज खोजने की जरूरत है कंपनी का नाम और इसके अंदर कोई भी काम कोड या नाम के काम में एक रेगेक्स से मेल खाता है। मैं इस है:
var companyquery = { "company": "New Company"};
var regQuery = new RegExp('^A0011.*$', 'i');
db.categories.find({$and: [companyquery,
{$or: [
{"worktypes.works.$.name": regQuery},
{"worktypes.works.$.code": regQuery}
]}]})
लेकिन न वापसी किसी भी result..I लगता त्रुटि डी डॉट और $ .. किसी भी विचार के साथ सरणी के अंदर खोजने का प्रयास करते है?
संपादित करें:
इस के साथ:
db.categories.find({$and: [{"company":"New Company"},
{$or: [
{"worktypes.works.name": {"$regex": "^A00011$|^a00011$"}},
{"worktypes.works.code": {"$regex": "^A00011$|^a00011$"}}
]}]})
यह परिणाम है:
{
"_id" : ObjectId("53340d07d6429d27e1284c77"),
"company" : "New Company",
"worktypes" : [
{
"name" : "Pompas",
"works" : [
{
"name" : "name 2",
"code" : "A00011",
"price" : "22,22"
},
{
"code" : "aa",
"name" : "aa",
"price" : "11"
},
{
"code" : "A00112",
"name" : "Nombre",
"price" : "12,22"
},
{
"code" : "asdasd",
"name" : "asdads",
"price" : "22"
},
{
"code" : "yy",
"name" : "yy",
"price" : "11"
}
]
},
{
"name" : "name 4",
"works" : [
{
"code" : "A112",
"name" : "Nombre",
"price" : "11,2"
}
]
},
{
"name" : "Bombillos"
},
{
"name" : "Pompas"
},
{
"name" : "Bombillos 2"
},
{
"name" : "Other type"
},
{
"name" : "Other new type"
}
]
}
regex न क्षेत्र परिणाम ठीक ..
'regexQuery' क्या है? – Robin
रेगेक्स के लिए मूल्य वाला एक स्ट्रिंग, मैंने अपने कोड को नोडजेस क्लाइंट से कॉपी किया है, मैं अपना questio संपादित करूंगा। Thanls – colymore
मुझे लगता है कि समस्याओं में से एक यह है कि स्थितित्मक ऑपरेटर '$' एक प्रक्षेपण/अद्यतन ऑपरेटर है, एक क्वेरी ऑपरेटर नहीं है, 'worktypes.works.name' के बजाय कुछ "worktypes.works.name" 'के करीब आज़माएं। $ .name "' – Sammaye