MongoDB querying with Java API -



MongoDB querying with Java API -

here sample document of mongodb:

user:{ _id:1, name:'xyz', age:12, mobile:21321312, transaction:[{ trans_id:1, prod:'a', purchasedat:isodate("2015-02-01"), }, { trans_id:2, prod:'b', purchasedat:isodate("2015-02-01") }, { trans_id:3, prod:'c', purchasedat:isodate("2014-11-24") }] ,... }

my query looks like:

db.user.find({transaction:{$elemmatch:{prod:'a', purchasedat:isodate("2015-02-01")}}, transaction:{$elemmatch:{prod:{$nin:['b','c']}, purchasedat:isodate("2015-02-01")}}}).count()

i trying user count have purchased product 'a' on date "2015-02-01" not have purchased product b & c on same day.

so while trying in java query:

coll.find(new basicdbobject().append("transaction", new basicdbobject("$elemmatch", new basicdbobject("prod", 'a').append("purchasedat", date))).append("transaction", new basicdbobject("$elemmatch", new basicdbobject("prod", new basicdbobject("$nin",['b','c'])).append("purchasedat", date)));

i have tried:

coll.find(new basicdbobject("transaction", new basicdbobject("$elemmatch", new basicdbobject("prod", 'a').append("purchasedat", date))).append("transaction", new basicdbobject("$elemmatch", new basicdbobject("prod", new basicdbobject("$nin",['b','c'])).append("purchasedat", date)));

where date "2015-02-01" in util.date object.

i found out java ignores $in part of query, i.e. ignores {transaction:{$elemmatch:{prod:'a', purchasedat:isodate("2015-02-01")}} & performs $nin part.

i found out dbcursor object.

here's output of cursor:

cursor: cursor id=0, ns=mydb.user, query={ "transaction" : { "$elemmatch" : { "prod" : { "$nin" : [ "b" , "c"]} , "purchasedat" : { "$date" : "2015-02-01t00:00:00.000z"}}}}, numiterated=0, readpreference=primary

because of result inaccurate. wonder why exact same query works in mongo shell doesn't java api. there wrong query structure?

java mongodb api mongodb-query

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -