MongoDB Java query criteria (date WHERE> X and field = value) Ignore the second sentence

import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;

public class CustomQuery {

  @Autowired private MongoOperations mongoOperations;    

  public void customQuery(Date submittalDate) {

     List<Question> q1s = mongoOperations.find(
        new Query(Criteria.where("category").is("New")), 
        Question.class);

     List<Question> q2s = mongoOperations.find(
      new Query(
        Criteria.where("submittalDate").gt(submittalDate).and("category").is("New")
      ),
      Question.class);
  }
}

The top Spring MongoDB Java query returns the expected results in q1s.

The bottom query should return a subset of the top query. Instead, entries that match ("submittalDate"). Gt (submittalDate), are in q2s results, regardless of whether or not they are in the "New" category.

i.e. this is like ("category"). ("New") from the second request is ignored.

Using Mongodb v2.0.6 32-bit with Spring Data p>

Help evaluate.

09/09/2012 update

Still not working

Update 08/26/2012

This returns the results on the Mongo command line:

db.foo.find( {   "submittalDate":{ "$gte": ISODate("2012-07-31T23:00:00.000Z")  }, "category" : "New"    } )

, Java ( ) . , , DEBUG Java, :

[DEBUG] [http-8080-1] (MongoTemplate.java:doFind:1256) find using query: 
{ "submittalDate" : { "$gte" : { "$date" : "2012-07-31T23:00:00.000Z"}} , "category" : "New"} 

, , Mongo ISODate (..). Java MongoDB java.util.Date - ISODate (..) ? .

+5
2

spring, , . , , , . spring , / .

import com.mongodb.Mongo;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.mongodb.DBCursor;

public class CustomQuery {

public void customQuery(Date submittalDate)
{
        document = new BasicDBObject();
        document.put(("submittalDate").greaterThanEquals(submittalDate).put("category").is("New").get());
        DBCursor cursor = getDbCollection().find(document); 

}

}
+1
{ "$date" : "2012-07-31T23:00:00.000Z"}

Date("2012-07-31T23:00:00.000Z")

Date("2012-07-31T23:00:00.000Z") , ISODate().

http://www.mongodb.org/display/DOCS/Mongo+Extended+JSON.

, org.springframework.data.mongodb.core.query.Criteria.

0

All Articles