pom文件中加入:
<< span="">dependency>
org.springframework.boot
spring-boot-starter-data-mongodb
dependency>
编写dao
package com.ktvme.mgrapp.db.mongo
import groovy.transform.EqualsAndHashCode
import groovy.transform.ToString
import org.springframework.data.annotation.Id
@ToString
@EqualsAndHashCode
class RevenuePayment implements Serializable{
@Id
String id
String companyCode
int companyID
List
在代码中使用
package com.ktvme.mgrapp.db
import com.ktvme.mgrapp.Main
import com.ktvme.mgrapp.db.mongo.RevenuePayment
import org.joda.time.LocalDate
import org.junit.Test
import org.junit.runner.RunWith
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.data.mongodb.core.MongoTemplate
import org.springframework.data.mongodb.core.query.Criteria
import org.springframework.data.mongodb.core.query.Query
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Main)
class MongoDaoTest {
@Autowired
private MongoTemplate mongoTemplate
@Test
void testDao() {
def payment = new RevenuePayment(companyCode: "01103", companyID: 64, details: [
[name: "现金", value: 100],
[name: "银行卡", value: 200],
[name: "团购", value: 300]
])
mongoTemplate.save(payment)
println "payment = $payment"
}
@Test
void testSum() {
Query query = new Query()
query.addCriteria(Criteria.where('companyCode').is("01103").and("date").is(new LocalDate("2017-06-10").toDate()))
Listdata = mongoTemplate.find(query,RevenuePayment.class)
def total = [:]
def list = data.collect { it.details }
println(list)
data.collect { it.details }.each {
it.each {
if (total.containsKey(it.name))
total[it.name] = total[it.name] + it.value
else
total[it.name] = it.value
}
}
println(total)
}
}