日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

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

軟件下載吧

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

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

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

前言

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

基本知識點:

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

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

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

//插入時轉(zhuǎn)換
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);
}
}
}

//查詢時轉(zhuǎn)換
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]);
}

標(biāo)簽mongo,數(shù)據(jù),集合,屬性,存在,點號,解決,方法

相關(guān)下載

查看所有評論+

網(wǎng)友評論

網(wǎng)友
您的評論需要經(jīng)過審核才能顯示

熱門閱覽

最新排行

公眾號

主站蜘蛛池模板: 久久最新免费视频 | 亚洲精品久久久久久久久久久网站 | 国产私拍福利精品视频推出 | 99九九精品国产高清自在线 | 韩国精品视频在线观看 | 特级一级全黄毛片免费 | 亚洲欧美卡通成人制服动漫 | 国产成在线观看免费视频 | 日韩欧美在线观看一区 | 久草免费福利 | 在线看片 在线播放 | 99久久精品99999久久 | 欧美日韩顶级毛片www免费看 | 亚洲欧洲一二三区机械有限公司 | 手机看片国产免费永久 | 久久综合一本 | 亚洲美女性视频 | 国产欧美日本 | av中文字幕网免费观看 | 精品厕拍 | 久草免费在线观看视频 | 九九视频在线观看视频23 | 欧美一级毛片片免费孕妇 | 久久亚洲天堂 | 精品国产免费一区二区三区五区 | 久久成年片色大黄全免费网站 | 国产99精品一区二区三区免费 | 欧美69精品国产成人 | 久久久久久青草大香综合精品 | 欧美级毛片 | 在线观看日本免费视频大片一区 | 九九视频高清视频免费观看 | 国产精品久久久久久爽爽爽 | japanesevideo乱子 japanese日本tube色系 | 久久国产精品-国产精品 | 成人国产第一区在线观看 | 女人张开腿让男人捅视频 | 国产精品1区2区3区在线播放 | 国产精品亚洲一区二区三区久久 | 日本aaaa特级毛片 | 黄色毛片三级 |