日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dbref java_查询mongodb dbref内部字段

發布時間:2024/7/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dbref java_查询mongodb dbref内部字段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我需要隱藏其isActive標志設置為false的所有用戶相關數據 . 有許多集合我使用了DBRef類型的用戶集合(大約14個集合),每個集合包含超過1000萬條記錄 .

讓我借助例子更恰當地解釋一下 .

假設我有兩個集合:

用戶

聯系

用戶集包含以下字段:

名字(字符串)

姓氏(String)

isActive(布爾)

聯系人集合包含以下字段:

Contacter(User)聲明為DBref類型 .

Contactee(User)聲明為DBRef類型 .

ContactStatus(String)

現在我要觸發一個查詢,該查詢將獲取其所有聯系人 ContactStatus = "Confirmed" && Contacter.isActive = true && Contactee.isActive = true

就mongodb而言,查詢將是這樣的:

db.Contacts.find({"ContactStatus" : "Confirmed", "Contacter.isActive" : true, "Contactee.isActive" : true});

但是當我在mongo shell中運行此查詢時,它總是返回零記錄 .

所以這里的問題是1)是否可以在DBRef的內部字段上觸發查詢? 2)如果沒有,那我該怎么做呢 .

注意 - 在此階段,我無法修改數據模型 . 在“in”查詢的幫助下,我可以做到這一點 . 但它最終會在我需要隱藏該用戶的地方增加一次往返 .

目前我使用的是mongodb-2.4.5和Spring-Data-MongoDB-1.2.3 jar

到目前為止我的代碼是這樣的 -

Criteria criteria = new Criteria();

criteria = criteria.where(Contact.CONTACT_REQUEST_STATUS).is(ContactRequestStatusEnum.ACCEPTED);

criteria = criteria.and(Contact.CONTACTER + "." + User.ACTIVE).is(Boolean.TRUE);

criteria = criteria.and(Contact.CONTACTEE + "." + User.ACTIVE).is(Boolean.TRUE);

Query q = new Query(criteria);

List contacts = Contacts.find(q, Contact.class);

總結

以上是生活随笔為你收集整理的dbref java_查询mongodb dbref内部字段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。