Mongodb使用小記2之elemMatch匹配
匹配查詢
資料型別如圖
其中
@Document public class GroupBuy extends AbstractEntity { private String bookTitle; private String bookId; private Double bookPrice; private JFile bookCover; private Double price; private Long timestamp; private UserInfo createdBy; // the user already joined in private Set<UserInfo> members; private GroupBuyType type; private GroupBuyStatus status;
@Pojo
public class UserInfo {
private String id;
private String alias;
private String walletAddress;
private JFile avator;
需求: 要判斷當前使用者是否已經參加了團購,即GroupBuy.member是否包括當前使用者。
程式碼:
Criteria criteria = new Criteria(); criteria.and("bookId").is(bookId); criteria.and("members").elemMatch(Criteria.where("id").is(provider.getId())); criteria.and("status").in(GroupBuyStatus.started, GroupBuyStatus.finished); if (mongoTemplate.exists(new Query(criteria), GroupBuy.class)) throw new Exception("you can not create groupbuy to buy same book twice!");
Criteria criteria = Criteria.where("bookId").is(bookId).and("status")
.in(GroupBuyStatus.finished, GroupBuyStatus.started).and("members")
.elemMatch(Criteria.where("id").is(provider.getId()));
相關推薦
Mongodb使用小記2之elemMatch匹配
匹配查詢 資料型別如圖 其中 @Document public class GroupBuy extends AbstractEntity { private String bookTitle; private String bookId; private D
MongoDB基礎2 之 復制集篇
快照 add tcp 文件目錄 進程管理 color 數據 進程 oss 接著上篇接續 在單臺服務器資源充分的情況下,可以使用多實例,以便充分使用服務器資源 由於我在虛擬機中做的所以恢復了快照 開啟服務systemctl start mongod.service netst
HTML之課堂小記2
clas 連接符 class earch 命名法 劃線 例如 for lock BEM命名法: 這裏的B,指的是block,也就是“search-form” 這裏的E,指的是element,也就是跟隨在search-form後的“username”,“password”和“
MongoDB 2 之 手把手教你增刪改查
我們在 MongoDB 之 你得知道MongoDB是個什麼鬼 MongoDB - 1 中學習瞭如果安裝部署一個 MongoDB 如果沒看到我的金玉良言的話,就重新開啟一次客戶端和服務端吧 本章我們來學習一下關於 MongoDB的增刪改查 一.MongoDB操作 之 原生
mongodb原始碼分析(五)查詢2之mongod的資料庫載入
上一篇文章分析到了客戶端查詢請求的傳送,接著分析服務端的處理動作,分析從服務端響應開始到資料庫 正確載入止,主要流程為資料庫的讀入過程與使用者的認證. mongod服務對於客戶端請求的處理在mongo/db/db.cpp MyMessageH
mongodb 3.x 之實用新功能窺看[2] ——使用$lookup做多表關聯處理
這篇我們來看mongodb另一個非常有意思的東西,那就是$lookup,我們知道mongodb是一個文件型的資料庫,而且它也是最像關係型資料庫的 一種nosql,但是呢,既然mongodb是無模式的,自然就很難在關係型資料庫中非常擅長的多表關聯上發揮作用,在這之前,我們可以使
應用Mongoose開發MongoDB(2)模型(models)
length 輸出 ror highlight unit required opts nbsp 在一起 數據模型及基礎操作模板 為了使工程結構清晰,將數據模型(Schema, Model)的建立與增刪查改的基礎操作模板寫在一起,命名為數據庫設計中的Collection(
MongoDB(2): 增刪改操作
db nosql mongo 增刪改 curd 附加命令:1、進入前端操作命令./mongo [ip:端口]說明:默認會自動選本地,端口270172、顯示所有的庫> show dbs; 或者 show databases;3、選擇庫> use 庫名;4、顯示庫所有的集合&g
Mongodb集群之副本集
only sim post ims mongob sta art 機制 wid 上篇咱們遺留了幾個問題 1主節點是否能自己主動切換連接?眼下須要手動切換 2主節點讀寫壓力過大怎樣解決 3從節點每一個上面的數據都是對數據庫全量拷
Ionic 2之node-sass問題解決辦法
tro https load -a href ech lease 問題 node node 重置Ionic項目: npm cache clean 在安裝Ionic2的git-hub項目:https://github.com/driftyco/ionic-con
cocos2d-x 3.2 之 2048 —— 第五篇
能夠 urn onf 平臺 restart getch ring article dia ***************************************轉載請註明出處:http://blog.csdn.net/lttree****************
MongoDB初探系列之四:MongoDB與Java共舞
ever 文件 basic query find man mongodb next() 入學 因為版本號不同,可能API也有所不同。本次學習用的是3.0版本號。 1、使用的mongodb的jdbc驅動版本號為:mongo-java-driver-3.0.0.jar
帶你重拾JavaScript(2)之console的你所不知道的功能
斷言 adding devel bcf dev ces com 字符 bom JavaScript最常用的調試工具就是console.info()了。console是瀏覽器中window對象的屬性之一,由瀏覽器對象模型(BOM)提供,作用是訪問瀏覽器控制臺,你可以通過
linux (centos)下安裝 mongodb v3.2 筆記
安裝 i686 src gpa logs http 權限 fig 說明 1.下載mongodb 默認都是64位的,這個有點尷尬。。。 64位系統下載地址: https://www.mongodb.org/dl/linux/x86_64-debian81?
mongodb權威指南之mongodb基礎知識學習記錄
pre lec fin 基礎知識 pda log editor 批量 l數據庫 mongo show dbs查看所有的數據庫 使用use可以切換數據庫,如果沒有數據庫則創建一個新的 use local切換倒local數據庫 增加數據 db.test.insert({name
C語言復習2之位操作
位操作位操作 位操作是程序設計中對位模式按位或二進制數的一元和二元操作. 在許多古老的微處理器上, 位運算比加減運算略快, 通常位運算比乘除法運算要快很多. 在現代架構中, 情況並非如此:位運算的運算速度通常與加法運算相同(仍然快於乘法運算)。 位運算符 取反(~)是一元運算符, 對一個
MongoDB 學習筆記之 權限管理基礎
顯示 命令 修改 技術 sky 需要 bad 官方 改密碼 權限管理基礎 MongoDB有很多用戶roles,這裏只是簡單列舉下命令的使用,具體的role的含義,請查閱官方文檔。 https://docs.mongodb.com/manual/reference/bui
MongoDB 學習筆記之 分片和副本集混合運用
comment ssm table mmap insert ise class 學習 urn 分片和副本集混合運用: 基本架構圖: 搭建詳細配置: 3個shard + 3個replicat set + 3個configserver + 3個Mongos sh
MongoDB 學習筆記之 手動預先分片
var http strong str 可見 mongod 手動 ++ 1-1 手動預先分片: 目的:手動預先分片是為了防止未來chunk的移動,減少IO。 sh.shardCollection("shop.users",{"userId": 1 }) for(v
NodeJS+Express+MySQL開發小記(2):服務器部署
win ner 關閉 私有倉庫 aux ges his 發現 all http://borninsummer.com/2015/06/17/notes-on-developing-nodejs-webapp/ NodeJS+Express+MySQL開發小記(1)裏講過在