my collection structure is as follows
{ name : "xyz" , priLoc :{ area : a , country : c } , secondLoc :
[ {area : b ,country : d},{area : b ,country : d} ]}
I want to make query that Oring the area both priLoc and secondLoc and anding the country both priLoc and secondLoc.
I have make query like below
var query = new BasicDBObject()
val areaObjList = new BasicDBList
var primaryArea = new BasicDBObject("priLoc.area", areaList)
var secondaryArea = new BasicDBObject("secondLoc.area",areaList)
areaObjList.add(primaryArea)
areaObjList.add(secondaryArea)
query.put("$or", areaObjList)
val countryObjList = new BasicDBList
val primaryCountry = new BasicDBObject("priLoc.country",countryList)
val secondaryCountry = new BasicDBObject("secondLoc.country",countryList)
countryObjList.add(primaryCountry);
countryObjList.add(secondaryCountry);
query.put("$or", countryObjList)
but when this this code run areaObjList is replayed by countryObjList so at time only one or object present in query object
I want to make query which and both or object means areaObjList and countryObjList.
how do implement this . or I am making something wrong
if some one knows plz reply.
Thanks
MongoDB does not provide a generic query language as you might expect it from SQL. Basically all query expressions are combined using AND (implictely). You can use $or operator to combine an arbitrary number of expressions. But there is no generic for query something like
(a and b) or (c and d) or not (x and y) etc....