淺談MongoDB 關系_MongoDB

來源:腳本之家  責任編輯:小易  

本文主要講2113述如何使用Java操作MongoDB以及5261了解MongoDB如何進行日常的數據庫4102操作。文章內容1653如下:第一步:安裝MongoDB無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。第二步:啟動MongoDB服務器這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),并啟動MongoDB服務器。在默認的情況下服務器將啟動端口27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。第三步:啟動MongoDB shell指令你可以通過運行mongo.exe文件來啟動MongoBD shell。第四步:利用MongoDB創建數據庫利用MongoDB在MongoDB shell中輸入以下內容建立一個名為“company”的數據庫。use company 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。使用下面的命令幫你查看可用的數據庫,它會顯示“company”尚未被創建。show dbs; 第五步:在MongoDB中保存數據使用下面的命令來保存employee 數據代表一個collection,將其命名為employees。employee = {name : "A", no : 1} db.employees.save(employee) 通過使用下面的命令來查看collection里的數據。db.users.find(); 如何使用Java操作MongoDB?下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。package com.eviac.blog.mongo; import java.net.UnknownHostException; import com.mongodb.BasicDBObject; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; public class MongoDBClient { public static void main(String[] args) { try { Mongo mongo = new Mongo("localhost", 27017); DB db = mongo.getDB("company"); DBCollection collection = db.getCollection("employees"); BasicDBObject employee = new BasicDBObject(); employee.put("name", "Hannah"); employee.put("no", 2); collection.insert(employee); BasicDBObject searchEmployee = new BasicDBObject(); searchEmployee.put("no", 2); DBCursor cursor = collection.find(searchEmployee); while (cursor.hasNext()) { System.out.println(cursor.next()); } System.out.println("The Search Query has Executed!"); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } } } 結果如下:{ "_id" : { "$oid" : "4fec74dc907cbe9445fd2d70"} , "name" : "Hannah" , "no" : 2} The Search Query has Executed! 小結:隨著互聯網Web2.0網站的興起,非關系型的數據庫現在成了一個極其熱門的新領域,非關系數據庫產品的發展也非常迅速。本文淺顯的談及了如何使用Java操作MongoDB以及了解MongoDB如何進行日常的數據庫操作的問題。如果您是這方面的專家不妨與我們分享下。本文為CSDN編譯整理,未經允許不得轉載www.anxorj.tw防采集請勿采集本網。

MongoDB 的關系表示多個文檔之間在邏輯上的相互聯系。

redis可以用hash存放簡單關系型數據。mogodb存放json格式數據。適合場景:事件記錄、內容管理或者博客平臺,比如評論系統。nosq的產品目前很多,架構e799bee5baa6e997aee7ad94e58685e5aeb931333339653763

文檔間可以通過嵌入和引用來建立聯系。

2、Mongodb是“非關系”型的,所以以嚴格遵守范式所設計的關系型數據庫進行移植時,需要考慮多表查詢的效率。一般來講,關系表要對數據進行冗余才能達到高效率的查詢。你只能通過代碼的方式將多個主表和

MongoDB 中的關系可以是: 1:1 (1對1) 1: N (1對多) N: 1 (多對1) N: N (多對多)

如樓上所言mongodb是非關系型數據庫,優勢用來存文檔型數據,而非結構化數據。適用于網站數據庫。以上僅供參考~

首先要確定,你們為什么需要將關系型數據庫中的數據導入到NoSql數據庫中?是為了達到什么樣的需求才這么做的。我也是做開發的,我推薦以下幾點,不要嘗試將關系型數據庫轉換為非關系型數據庫:1

接下來我們來考慮下用戶與用戶地址的關系。

如果是一對多,我知道可以用嵌套,但不知道如何處理多對多的關系,請指教!緛碜陨劫\】問題解如何處理好多對多的關系可謂是NoSQL的精髓所在。理論上,可以在一個集合中完成存儲,不過實際上這樣的

一個用戶可以有多個地址,所以是一對多的關系。

以下是 user 文檔的簡單結構:

{ "_id":ObjectId("52ffc33cd85242f436000001"), "name": "Tom Hanks", "contact": "987654321", "dob": "01-01-1991"}

以下是 address 文檔的簡單結構:

{ "_id":ObjectId("52ffc4a5d85242602e000000"), "building": "22 A, Indiana Apt", "pincode": 123456, "city": "Los Angeles", "state": "California"}

嵌入式關系

使用嵌入式方法,我們可以把用戶地址嵌入到用戶的文檔中:

{ "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address": [ { "building": "22 A, Indiana Apt", "pincode": 123456, "city": "Los Angeles", "state": "California" }, { "building": "170 A, Acropolis Apt", "pincode": 456789, "city": "Chicago", "state": "Illinois" }]}

以上數據保存在單一的文檔中,可以比較容易的獲取和維護數據。 你可以這樣查詢用戶的地址:

>db.users.findOne({"name":"Tom Benzamin"},{"address":1})

注意:以上查詢中 db 和 users 表示數據庫和集合。

這種數據結構的缺點是,如果用戶和用戶地址在不斷增加,數據量不斷變大,會影響讀寫性能。

引用式關系

引用式關系是設計數據庫時經常用到的方法,這種方法把用戶數據文檔和用戶地址數據文檔分開,通過引用文檔的 id 字段來建立關系。

{ "_id":ObjectId("52ffc33cd85242f436000001"), "contact": "987654321", "dob": "01-01-1991", "name": "Tom Benzamin", "address_ids": [ ObjectId("52ffc4a5d85242602e000000"), ObjectId("52ffc4a5d85242602e000001") ]}

以上實例中,用戶文檔的 address_ids 字段包含用戶地址的對象id(ObjectId)數組。

我們可以讀取這些用戶地址的對象id(ObjectId)來獲取用戶的詳細地址信息。

這種方法需要兩次查詢,第一次查詢用戶地址的對象id(ObjectId),第二次通過查詢的id獲取用戶的詳細地址信息。

>var result = db.users.findOne({"name":"Tom Benzamin"},{"address_ids":1})>var addresses = db.address.find({"_id":{"$in":result["address_ids"]}})

以上就是淺談MongoDB 關系的詳細內容,更多關于MongoDB 關系的資料請關注真格學網其它相關文章!

NoSQL數據庫因其可擴展性使其變得越來越流行,利用NoSQL數據庫可以給你帶來更多的好處,MongoDB是一個用C++編寫的可度可擴展性的開源NoSQL數據庫。本文主要講述如何使用Java操作MongoDB以及了解MongoDB如何進行日常的數據庫操作。文章內容如下:第一步:安裝MongoDB無需太多的繁雜步驟,你只要在MongoDB官方網站查看安裝說明,根據自己的操作系統進行選擇適應的版本即可。第二步:啟動MongoDB服務器這一步也很簡單。運行mongod.exe文件里的bin文件夾(我使用的是Windows OS系統),并啟動MongoDB服務器。在默認的情況下服務器將啟動端口27017,你需要在安裝過程中創建將數據存儲在/data/db目錄里。第三步:啟動MongoDB shell指令你可以通過運行mongo.exe文件來啟動MongoBD shell。第四步:利用MongoDB創建數據庫利用MongoDB在MongoDB shell中輸入以下內容建立一個名為“company”的數據庫。use company 記住,除非你在MangoDB里保存了一些東西,否則它不會自動為你保存。使用下面的命令幫你查看可用的數據庫,它會顯示“company”尚未被創建。show dbs;第五步:在MongoDB中保存數據使用下面的命令來保存employee 數據代表一個collection,將其命名為employees。employee={name:"A",no:1} db.employees.save(employee)通過使用下面的命令來查看collection里的數據。db.users.find();如何使用Java操作MongoDB?下面是是一段簡單的Java代碼,你可以在這里獲得mongo-java驅動。很簡單,只需要使用下面的代碼,重復上面的操作即可。packagecom.eviac.blog.mongo;import java.net.UnknownHostException;importcom.mongodb.BasicDBObject;importcom.mongodb.DB;importcom.mongodb.DBCollection;importcom.mongodb.DBCursor;importcom.mongodb.Mongo;importcom.mongodb.MongoException;public class MongoDBClient { public static void main(String[]args){ try { Mongo mongo=new Mongo("localhost",27017);DB db=mongo.getDB("company");DBCollection collection=db.getCollection("employees");BasicDBObject employee=new BasicDBObject();employee.put("name內容來自www.anxorj.tw請勿采集。


  • 本文相關:
  • mongodb模糊查詢操作案例詳解(類關系型數據庫的 like 和 not like)
  • mongodb與sql關系型數據比較
  • mongodb學習筆記(四) 用mongodb的文檔結構描述數據關系
  • 1億條記錄的mongodb數據庫隨機查詢性能測試
  • 基于mongodb數據庫的數據類型和$type操作符詳解
  • mongodb 集群重構和釋放磁盤空間實例詳解
  • mongodb運行日志實現自動分割的方法實例
  • mongodb 3.2.5安裝詳細過程
  • mongodb快速入門筆記(一)之windows下安裝mongodb方法
  • mongodb的分片集群基本配置教程
  • mongodb多條件模糊查詢示例代碼
  • mongoose 在egg中的使用詳解
  • java操作mongodb的模糊查詢和精確查詢
  • 淺談如何用Java操作MongoDB?
  • 淺談如何用Java操作MongoDB?
  • 淺談如何用Java操作MongoDB?
  • mongodb底層使用松散的什么作為數據存儲格式
  • redis和mongodb的區別
  • 關系型數據庫Oracle的數據導入非關系型數據庫mongodb。
  • mongodb是關系型數據庫嗎
  • mongodb中關系如何處理?要顛覆傳統關系型數據庫的思想嗎
  • MongoDB如何處理多對多關系
  • mongodb 怎么讀
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess數據庫文摘數據庫其它首頁mongodb模糊查詢操作案例詳解(類關系型數據庫的 like 和 not like)mongodb與sql關系型數據比較mongodb學習筆記(四) 用mongodb的文檔結構描述數據關系1億條記錄的mongodb數據庫隨機查詢性能測試基于mongodb數據庫的數據類型和$type操作符詳解mongodb 集群重構和釋放磁盤空間實例詳解mongodb運行日志實現自動分割的方法實例mongodb 3.2.5安裝詳細過程mongodb快速入門筆記(一)之windows下安裝mongodb方法mongodb的分片集群基本配置教程mongodb多條件模糊查詢示例代碼mongoose 在egg中的使用詳解java操作mongodb的模糊查詢和精確查詢mongodb常用操作命令大全mongodb各種查詢操作詳解mongodb數據庫插入、更新和刪除操mongodb 數據庫操作--備份 還原 mongodb插入數據的3種方法mongodb中使用distinct去重的簡單mongodb整庫備份與還原以及單個cmongodb查詢操作限制返回字段的方淺談mysql和mariadb區別(mariadbmongodb 實現遠程連接mongodb的安裝及配置文件選項全解mongodb服務端javascript腳本使用方法mongodb+php實現簡單的增刪改查mongodb中唯一索引(unique)的那些事mongodb driver使用代碼詳解mongodb的基礎知識簡介阿里云服務器安裝mongodb的方法centos 7下mongodb開機無法自啟動的解決方mongodb 快速入門使用zabbix監控mongodb的方法
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.anxorj.tw All Rights Reserved
    陕西快乐10分下载