下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當前位置:軟件下載吧 > 數據庫 > DB2 > mongo數據集合屬性中存在點號(.)的解決方法

mongo數據集合屬性中存在點號(.)的解決方法

時間:2024-02-24 17:17作者:下載吧人氣:24

前言

MongoDB是面向集合存儲的文檔型數據庫,其涉及到的基本概念與關系型數據庫比有所不同。本文主要介紹關于mongo數據集合屬性存在點號(.)的相關內容,下面話不多說了,來一起看看詳細的介紹吧

基本知識點:

1.似乎mongo3.6之前不允許插入帶點(.)或美元符號($)的鍵,但是當我使用mongoimport工具導入包含點的JSON文件時,它工作正常。

2.在使用spring-data-mongodb處理mongodb的增刪改查時會通過一個MappingMongoConverter(Document和Modle轉換類)轉換數據

3.具體對點號的轉換在DBObjectAccessor(spring-data-mongodb-1.10.13)或者DocumentAccessor(spring-data-mongodb-2.0.9),如下:

//插入時轉換
public void put(MongoPersistentProperty prop, Object value) {
Assert.notNull(prop, “MongoPersistentProperty must not be null!”);
String fieldName = prop.getFieldName();
if (!fieldName.contains(“.”)) {
dbObject.put(fieldName, value);
return;
}
Iterator<String> parts = Arrays.asList(fieldName.split(“\.”)).iterator();
DBObject dbObject = this.dbObject;
while (parts.hasNext()) {
String part = parts.next();
if (parts.hasNext()) {
dbObject = getOrCreateNestedDbObject(part, dbObject);
} else {
dbObject.put(part, value);
}
}
}

//查詢時轉換
public Object get(MongoPersistentProperty property) {
String fieldName = property.getFieldName();
if (!fieldName.contains(“.”)) {
return this.dbObject.get(fieldName);
}
Iterator<String> parts = Arrays.asList(fieldName.split(“\.”)).iterator();
Map<String, Object> source = this.dbObject;
Object result = null;
while (source != null && parts.hasNext()) {
result = source.get(parts.next());
if (parts.hasNext()) {
source = getAsMap(result);
}
}
return result;
}

//判斷值是否為空
public boolean hasValue(MongoPersistentProperty property) {
Assert.notNull(property, “Property must not be null!”);
String fieldName = property.getFieldName();
if (!fieldName.contains(“.”)) {
return this.dbObject.containsField(fieldName);
}
String[] parts = fieldName.split(“\.”);
Map<String, Object> source = this.dbObject;
Object result = null;
for (int i = 1; i < parts.length; i++) {
result = source.get(parts[i – 1]);
source = getAsMap(result);
if (source == null) {
return false;
}
}
return source.containsKey(parts[parts.length – 1]);
}

標簽mongo,數據,集合,屬性,存在,點號,解決,方法

相關下載

查看所有評論+

網友評論

網友
您的評論需要經過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 国产成人精品怡红院| 在线观看二区三区午夜| 亚洲欧美日韩视频一区| 免费观看美女用震蛋喷水的视频| 日日噜噜噜夜夜爽爽狠狠| 亚洲综合色成在线播放| 韩国成人在线视频| 年轻的嫂子在线线观免费观看| 亚洲在成人网在线看| 色噜噜在线视频| 在线免费观看日韩视频| 久久午夜福利无码1000合集 | 无码午夜人妻一区二区三区不卡视频 | 国产精品欧美一区二区三区 | 国产精品日本一区二区不卡视频| 久久久久久不卡| 激情内射亚洲一区二区三区爱妻| 国产成人亚综合91精品首页| stoya在线观看| 日韩欧美成人免费中文字幕 | 冈本视频老版app下载安装进入口| 又粗又硬又爽的三级视频| 成年丰满熟妇午夜免费视频| 亚洲国产韩国一区二区| 美女扒开屁股让男人桶| 国产精品一区二区三区免费 | a视频免费在线观看| 日韩欧美亚洲一区二区综合| 亚洲黄色在线看| 草草影院地址ccyycom浮力影院37| 国产视频xxxx| 三级黄色在线看| 欧美aaaaa| 伊人大杳焦在线| 被公侵犯电影bd在线播放| 亚洲国产av高清无码| 精品xxxxxbbbb欧美中文| 国产午夜精品一区二区| 91久久大香线蕉| 宅男66lu国产乱在线观看| 久久天天躁狠狠躁夜夜不卡|