簡體   English   中英

Spring 引導 MongoDB 僅將某些字段從數據庫獲取到 model

[英]Spring Boot MongoDB get only certain fields from database into model

我試圖了解如何使用 MongoDB 和 Spring 引導。 我有一個帶有示例數據的 mongodb,我希望它只返回選定的字段而不是整個數據。

我的 mongoDB 集合包含格式為的數據

在此處輸入圖像描述

DAO.java

package com.books.Reading.DAO;
import com.books.Reading.model.booksModel;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.mongodb.repository.Query;

public interface readingListDAO extends MongoRepository<booksModel, String> {

    @Query("{'title' : 'Griffon in Action'}")
    public booksModel findFirstByOrderByTitleAsc();
}

model.java

package com.books.Reading.model;

import org.springframework.data.mongodb.core.mapping.Document;

@Document
public class booksModel {
    String title;
    String isbn;
    int pageCount;

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public int getPageCount() {
        return pageCount;
    }

    public void setPageCount(int pageCount) {
        this.pageCount = pageCount;
    }
}

controller.java

package com.books.Reading.controller;

import com.books.Reading.model.booksModel;
import com.books.Reading.service.readingListService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class readingListController {

    @Autowired
    private readingListService rlService;

    @RequestMapping("/")
    @ResponseBody
    public booksModel getOne(){
        return rlService.getOne();
    }

}

服務.java

package com.books.Reading.service;

import com.books.Reading.model.booksModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class readingListService {

    @Autowired
    private com.books.Reading.DAO.readingListDAO readingListDAO;

    public booksModel getOne(){
        System.out.println(readingListDAO.findFirstByOrderByTitleAsc());
        return readingListDAO.findFirstByOrderByTitleAsc();
    }
}

應用程序屬性

spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.database=book
spring.session.mongodb.collection-name=readinglist

MongoDB 在本地托管。 如何從數據庫中僅檢索選定的字段(標題、isbn 和 pageCount)。

我對 Spring Boot 非常陌生,所以如果有其他錯誤或最佳實踐,我歡迎您的反饋。

默認情況下,將獲取文檔的所有屬性。 如果您想忽略結果中的某些屬性,可以使用過濾器選項。

        @Query(value = "{'title' : ?0}", fields = "{'description' : 0}")
        BooksModel findBooksModelByTitle(String title);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM