Convert MongoDB query into Spring MongoDB syntax

前端 未结 2 1499
春和景丽
春和景丽 2021-01-27 18:06

Hello I am unable to convert the following mongoDB query into spring query, i have tried multiple ways, but did not get the result.

db.getCollection(\'FarmerCrop         


        
相关标签:
2条回答
  • 2021-01-27 18:20

    If you've used JpaRepository then it's easy to relate that you can create an interface and extends MongoRepository just like with JpaRepository and it provides some simple method, and you don't need the implement it.

    you can use (for example consider A Person with First and Last name)

    MongoDB JSON based query methods and field restriction

    public interface PersonRepository extends MongoRepository<Person, String>
    
    @Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 1, 'lastname' : 1}")
    List<Person> findByThePersonsFirstname(String firstname);
    }
    

    Geo-spatial repository queries

    public interface PersonRepository extends MongoRepository<Person, String>
    
      // { 'location' : { '$near' : [point.x, point.y], '$maxDistance' : distance}}
      List<Person> findByLocationNear(Point location, Distance distance);
    }
    

    Read the Spring document here for MongoDB repositories

    0 讨论(0)
  • 2021-01-27 18:23

    Have you ever thought about using MongoDB compass? It will make your work very simple.

    1. Open MongoDB compass connect to your instance
    2. Aggregation tab, construct your pipeline
    3. click on the 3 dots(...) next to save pipeline option
    4. Select export to language and select Java
    5. Your query is ready

    Here is the java query

    Arrays.asList(match(and(eq("cropData.crop", "RICE"), lt("creationTime", 1551447981473.0d))), group(new BsonNull(), avg("average", "$cropData.cropPrice"), max("max", "$cropData.cropPrice"), min("min", "$cropData.cropPrice")))
    

    0 讨论(0)
提交回复
热议问题