Mongodb---java篇

一、導入依賴

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

二、編寫配置文件連接Mongodb

我的認證數據庫是admin,你們可能不一樣

spring:data:mongodb:host: 192.168.110.223port: 27017username: root#password: 123456# 將純數字密碼加字符串password: smartdatabase: articledbauthentication-database: admin

三、編寫實體

@Data
//復合索引
@CompoundIndex( def = "{'userid': 1, 'nickname': -1}")
@Document("comment")
public class Comment implements Serializable {@Idprivate String id;//吐槽內容private String content;//發布日期private Date publishtime;@Indexedprivate String userid;//昵稱private String nickname;//評論的日期時間private LocalDateTime createdatetime;//點贊數private Integer likenum;//回復數private Integer replynum;//狀態private String state;//上級IDprivate String parentid;private String articleid;

四、操作數據

? ? ? ? 可以是spring的模板方法進行crud操作,也可以自己設置Repository層進行操作,方法名和JPA有點相似。Repository默認的方法比價少,需要自己的寫方法,用模板方法就要多一些

@Repository
public interface CommentRepository  extends MongoRepository<Comment,String> {Page<Comment> findByParentid(String parentid, PageRequest of);}
package net.royal.student.service;import net.royal.student.dao.CommentRepository;
import net.royal.student.entity.Comment;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
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.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;import java.util.List;/*** @author Royal*/
@Service
public class CommentService {@Autowiredprivate CommentRepository commentRepository;//注入MongoTemplate@Autowiredprivate MongoTemplate mongoTemplate;/*** 保存一個評論*/public void saveComment(Comment comment) {commentRepository.save(comment);}/*更新一個評論*/public void updateComment(Comment comment) {commentRepository.save(comment);}/*** 根據id刪除評論*/public void deleteCommentById(String id) {commentRepository.deleteById(id);}/*** 查詢所有評論** @return*/public List<Comment> findCommentList() {
//調用daoreturn commentRepository.findAll();}/*** 根據id查詢評論** @param id* @return*/public Comment findCommentById(String id) {
//調用daoreturn commentRepository.findById(id).get();}/*** 根據父id查詢分頁列表* @param parentid* @param page* @param size* @return*/public Page<Comment> findCommentListPageParentId(String parentid, int page ,int size){return commentRepository.findByParentid(parentid, PageRequest.of(page-1,size));}/*** 點贊-效率低*/public void updateCommentThumbupToIncrementingOld(String id) {Comment comment = commentRepository.findById(id).get();comment.setLikenum(comment.getLikenum()+1);commentRepository.save(comment);}/*** 點贊數+1*/public void updateCommentLikenum(String id){//查詢對象Query query = Query.query(Criteria.where("_id").is(id));//更新對象Update update = new Update();update.inc("likenum");mongoTemplate.updateFirst(query, update, "comment");}
}

測試我這里就不演示了,都比較簡單。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24208.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24208.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24208.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第三篇——大數據思維的科學基礎

目錄 一、背景介紹二、思路&方案三、過程1.思維導圖2.文章中經典的句子理解3.學習之后對于投資市場的理解4.通過這篇文章結合我知道的東西我能想到什么&#xff1f; 四、總結五、升華 一、背景介紹 大數據時代&#xff0c;大數據思維的重要性不言而喻&#xff1b;而信息在…

Elasticsearch搜索優化-自定義路由規劃(routing)

在es的實踐學習中&#xff0c;我覺得它的文檔是最好的老師&#xff0c;所以先把這部分鏈接貼出來&#xff0c;本文只是引導&#xff0c;文檔全是細節&#xff0c;還是推薦大家事后認真看看文檔 Metadata fields-routing 在es搜索中&#xff0c;請求是先分發到所有分片&#x…

6月26~28日,2024北京國際消防展即將開幕!

隨著社會的快速發展&#xff0c;消防安全日益受到廣大民眾的高度關注。為了進一步推動消防科技的創新與發展&#xff0c;提升全民消防安全意識&#xff0c;2024年北京消防展將于6月26日在北京國家會議中心盛大開展。目前:觀眾預登記已全面啟動&#xff0c;廣大市民和業界人士可…

馬爾科夫性質-舉例簡單說明,馬爾科夫模型和隱馬爾科夫模型在自然語言處理方面應用是什么

目錄 馬爾科夫模型應用 馬爾科夫性質,舉例簡單說明 馬爾科夫模型 馬爾科夫鏈 馬爾科夫決策過程(Markov Decision Process, MDP) 例子 隱馬爾科夫模型(Hidden Markov Model, HMM) 馬爾科夫模型和隱馬爾科夫模型在自然語言處理方面應用是什么 馬爾科夫模型在自然語言…

SQLite3(1):介紹安裝與測試

目錄 1、SQLite3介紹 2、SQLite3的優勢和特性 3、SQLite3安裝與測試 3.1 SQLite3安裝 3.2 SQLite3測試 4、SQLite3簡單使用 4.1 連接數據庫文件 4.2 創建信息表 4.3 插入三個學生信息 4.4 確認信息 5、總結 1、SQLite3介紹 SQLite3是一種輕量級的關系型數據庫管理系…

論文閱讀 A Distributional Framework for Data Valuation

本論文解決的問題 量化數據價值&#xff08;機器學習模型訓練中各個數據點的貢獻&#xff09; 避免數據價值受到其所處數據集的影響&#xff0c;使數據點的估值更加穩定、一致 變量假設 假設 D 表示一個在全集 Z 上的數據分布。對于監督學習問題&#xff0c;我們通常認為 Z…

jvm學習筆記(一) ----- JAVA 內存

JAVA 內存 一、程序計數器二、虛擬機棧三、本地方法棧四、堆五、非JAVA內存(堆外內存)1.元空間(Metaspace)2.直接內存 鏈接: jvm學習筆記(二) ----- 垃圾回收 鏈接: jvm學習筆記(三) ----- 垃圾回收器 一、程序計數器 虛擬機需要通過『程序計數器』記錄指令執行到哪了。線程要…

代碼隨想錄算法訓練營day43

題目&#xff1a;1049. 最后一塊石頭的重量 II 、494. 目標和、474.一和零 參考鏈接&#xff1a;代碼隨想錄 1049. 最后一塊石頭的重量 II 思路&#xff1a;本題石頭是相互粉碎&#xff0c;粉碎后剩下的重量就是兩塊石頭之差&#xff0c;我們可以想到&#xff0c;把石頭分成…

使用智譜 GLM-4-9B 和 SiliconCloud 云服務快速構建一個編碼類智能體應用

本篇文章我將介紹使用智譜 AI 最新開源的 GLM-4-9B 模型和 GenAI 云服務 SiliconCloud 快速構建一個 RAG 應用&#xff0c;首先我會詳細介紹下 GLM-4-9B 模型的能力情況和開源限制&#xff0c;以及 SiliconCloud 的使用介紹&#xff0c;最后構建一個編碼類智能體應用作為測試。…

數據結構和算法之數組和鏈表

一、數組 數組是一種線性數據結構&#xff0c;它是由一組連續的內存單元組成的&#xff0c;用于存儲相同類型的數據。在JavaScript中&#xff0c;數組可以包含任意類型的數據&#xff0c;不只限于基本數據類型。 1.存儲方式 在內存中&#xff0c;數組的元素是連續存儲的&…

【Vue】組件的存放目錄問題

注意&#xff1a; .vue文件 本質無區別 組件分類 .vue文件分為2類&#xff0c;都是 .vue文件&#xff08;本質無區別&#xff09; 頁面組件 &#xff08;配置路由規則時使用的組件&#xff09;復用組件&#xff08;多個組件中都使用到的組件&#xff09; 存放目錄 分類開來的…

Llama模型家族之拒絕抽樣(Rejection Sampling)(二)均勻分布簡介

LlaMA 3 系列博客 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;一&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;二&#xff09; 基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;三&#xff09; 基于 LlaMA…

ssti模板注入

一、Flask應用 1、介紹 定義 Flask&#xff1a;是一個使用Python編寫的輕量級web應用框架。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。 特點 良好的文檔、豐富的插件、包含開發服務器和調試器、集成支持單元測試、RESTful請求調度、支持安全cookies、基于Unicode。 …

手機短信刪除怎么恢復?快速找回的3個秘密武器

手機&#xff0c;這個我們每天離不開的小玩意兒&#xff0c;有時候也會讓我們頭疼不已。比如&#xff0c;你一不小心&#xff0c;或者為了清理點空間&#xff0c;就把那些重要的短信給刪了。這些短信可能是你和好友的深夜聊天&#xff0c;或者是重要的工作信息。一旦刪除&#…

人工智能就業方向有哪些?

人工智能就業方向有哪些? 隨著人工智能技術的不斷發展&#xff0c;其應用領域也越來越廣泛。對于想要進入人工智能領域的年輕人來說&#xff0c;選擇一個合適的職業方向是至關重要的。今天給大家介紹六個熱門的人工智能就業方向&#xff0c;分別是機器學習工程師、自然語言處理…

Webshell檢測初識

最近在研究webshell檢測的小東西&#xff0c;所以開啟一個專門記錄webshell檢測工具開發的專欄&#xff0c;若有遺漏之處&#xff0c;請大佬們指出。 本篇大致了解以下內容 什么是webshll&#xff1f;有哪些類型&#xff1f;各自有什么不同&#xff1f;Webshell有哪些常見的檢測…

鼠標側鍵映射虛擬桌面切換 —— Win11

鼠標側鍵映射虛擬桌面切換 —— Win11 基于 AutoHotkey 實現功能 下載軟件 AutoHotkey建議安裝在默認路徑下&#xff08;C盤&#xff09; 此軟件非常小&#xff0c;幾乎不占用資源軟件安裝在默認路徑以外的位置可能導致部分功能不可用 新建一個 .ahk 文件使用記事本打開該 .a…

哪款開放式耳機佩戴最舒服?2024五款備受推崇產品分享!

?在現今耳機市場&#xff0c;開放式耳機憑借其舒適的佩戴體驗和獨特的不入耳設計&#xff0c;備受消費者追捧。它們不僅讓你在享受音樂時&#xff0c;仍能察覺周圍的聲音&#xff0c;確保與人交流無障礙&#xff0c;而且有利于耳朵的衛生與健康。對于運動愛好者和耳機發燒友而…

GIGE 協議摘錄 —— 引導寄存器(四)

系列文章目錄 GIGE 學習筆記 GIGE 協議摘錄 —— 設備發現&#xff08;一&#xff09; GIGE 協議摘錄 —— GVCP 協議&#xff08;二&#xff09; GIGE 協議摘錄 —— GVSP 協議&#xff08;三&#xff09; GIGE 協議摘錄 —— 引導寄存器&#xff08;四&#xff09; GIGE 協議…

Flutter Dismissible 屬性介紹及使用指南

在移動應用開發中&#xff0c;滑動刪除是一種常見的交互方式。Flutter 提供了一個強大的小部件 Dismissible&#xff0c;使得實現這一功能變得非常簡單。本文將介紹 Dismissible 的主要屬性及其使用方法。 1. Dismissible 簡介 Dismissible 是一個 Flutter 小部件&#xff0c…