真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

【MongoDB】spring-data-mongo配置

  • config.properties

    黃山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

#MongoDB setting
mongo.host=127.0.0.1
mongo.port=27017
mongo.connectionsPerHost=100
mongo.threadsAllowedToBlockForConnectionMultiplier=50
mongo.connectTimeout=1000
mongo.maxWaitTime=1500
mongo.autoConnectRetry=true
mongo.socketKeepAlive=true
mongo.socketTimeout=0
mongo.slaveOk=true

  • spring_mongo.xml






	

















	
	






  • entity

@Document(collection = "user")
public class User 
{
	@Id
	private int id;
	private String name;
	private int age;
	private String city;
	private String mote;
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getMote() {
		return mote;
	}
	public void setMote(String mote) {
		this.mote = mote;
	}
	
}

  • dao配置

public interface MGUserDao extends MongoRepository
{
	/**
	 * 方法名的嚴(yán)格遵守規(guī)定
	 * @param age
	 * @param page
	 * @return
	 */
	public Page findByAgeGreaterThan(int age, Pageable page);
	
	/**
	 * 有@Query聲明查詢(xún), 方法名不需要嚴(yán)格遵守規(guī)定
	 * @param name
	 * @param ageFrom
	 * @param ageTo
	 * @param pageable
	 * @return
	 */
	@Query("{'name':{'$regex':?0}, 'age': {'$gte':?1,'$lte':?2}}")
	public Page findByNameAndAgeRange(String name, int ageFrom, int ageTo, Pageable pageable);
	
	@Query("{?0:?1}")
	public List findByAttribute(String key, String value);
}

  • dao層的使用

    MongoRepository實(shí)現(xiàn)了的只是最基本的增刪改查的功能,要想增加額外的查詢(xún)方法,可以按照以下規(guī)則定義接口的方法。自定義查詢(xún)方法,格式為“findBy+字段名+方法后綴”,方法傳進(jìn)的參數(shù)即字段的值,此外還支持分頁(yè)查詢(xún),通過(guò)傳進(jìn)一個(gè)Pageable對(duì)象,返回Page集合。 例如:

//查詢(xún)大于age的數(shù)據(jù) 
public Page findByAgeGreaterThan(int age,Pageable page) ;

    

    下面是支持的查詢(xún)類(lèi)型,每三條數(shù)據(jù)分別對(duì)應(yīng):(方法后綴,方法例子,mongodb原生查詢(xún)語(yǔ)句)

GreaterThan(大于) 
findByAgeGreaterThan(int age) 
{"age" : {"$gt" : age}}

LessThan(小于) 
findByAgeLessThan(int age) 
{"age" : {"$lt" : age}}

Between(在...之間) 
findByAgeBetween(int from, int to) 
{"age" : {"$gt" : from, "$lt" : to}}

IsNotNull, NotNull(是否非空) 
findByFirstnameNotNull() 
{"age" : {"$ne" : null}}

IsNull, Null(是否為空) 
findByFirstnameNull() 
{"age" : null}

Like(模糊查詢(xún)) 
findByFirstnameLike(String name) 
{"age" : age} ( age as regex)

(No keyword) findByFirstname(String name) 
{"age" : name}

Not(不包含) 
findByFirstnameNot(String name) 
{"age" : {"$ne" : name}}

Near(查詢(xún)地理位置相近的) 
findByLocationNear(Point point) 
{"location" : {"$near" : [x,y]}}

Within(在地理位置范圍內(nèi)的) 
findByLocationWithin(Circle circle) 
{"location" : {"$within" : {"$center" : [ [x, y], distance]}}}

Within(在地理位置范圍內(nèi)的) 
findByLocationWithin(Box box) 
{"location" : {"$within" : {"$box" : [ [x1, y1], x2, y2]}}}

    盡管以上查詢(xún)功能已經(jīng)很豐富,但如果還不能滿足使用情況的話可以用一下方法---基于mongodb原本查詢(xún)語(yǔ)句的查詢(xún)方式。

    例一:在原接口中加入,注釋Query里面的就是mongodb原來(lái)的查詢(xún)語(yǔ)法,我們可以定義傳進(jìn)來(lái)的查詢(xún)參數(shù),通過(guò)坐標(biāo)定義方法的參數(shù)。

@Query("{ 'name':{'$regex':?2,'$options':'i'}, sales': {'$gte':?1,'$lte':?2}}")
public Page findByNameAndAgeRange(String name,double ageFrom,double ageTo,Pageable page);

    例二:還可以在后面指定要返回的數(shù)據(jù)字段,如上面的例子修改如下,則只通過(guò)person表里面的name和age字段構(gòu)建person對(duì)象。

@Query(value="{ 'name':{'$regex':?2,'$options':'i'}, sales':{'$gte':?1,'$lte':?2}}",fields="{ 'name' : 1, 'age' : 1}") 
public Page findByNameAndAgeRange(String name,double ageFrom,double ageTo,Pageable page);

分享標(biāo)題:【MongoDB】spring-data-mongo配置
網(wǎng)頁(yè)鏈接:http://weahome.cn/article/geojoe.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部