導航:首頁 > 編程語言 > javamongodb關聯查詢

javamongodb關聯查詢

發布時間:2023-05-16 15:42:13

java對mongodb進行正則查詢

用Java實現MongoDB正則查詢小技巧:
//模糊查詢
private BasicDBObject getLikeStr(String findStr) {
Pattern pattern = Pattern.compile("^.*" + findStr + ".*$", Pattern.CASE_INSENSITIVE);
return new BasicDBObject("$regex", pattern);
}
DBObject query = new BasicDBObject();
query.put("real_name", getLikeStr(userName));

//endWith文件擴展名
private BasicDBObject endWithStr(String findStr) {
Pattern pattern = Pattern.compile(findStr + "$", Pattern.MULTILINE);
return new BasicDBObject("$regex", pattern);
}
DBObject query = new BasicDBObject();
query.put("filename", endWithStr(「.pdf」));

❷ java怎麼實現MongoDB分頁查詢

int index=0;

while(cursor.hasNext()&index<limit){//確保循環十次,讓集合list的size=10,把list傳到前台,來達到每頁顯示十條數據的目的回

int i = limit-index;

//查詢結果放入答集合list中,要取查詢結果的後10條

if(i<10){

//記錄每頁第一條數據的時間

if(i==9){

fistTime = db.get("time").toString();

}

//記錄每頁最後一條數據的時間

if(i==0){

lastTime = db.get("time").toString();

}

list.add(cursor.hasNext().next());

}//end if

index++;

}//end while

❸ java中mongodb嵌套json查詢

fastjson-1.1.2.jar 可以用這個jar包實現 java裡面 json字元串和對象之間的互轉

❹ python3 mongodb怎麼實現關聯查詢

MongoDB是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可護展的高性能數據存儲解決方案。它的特點是高性能、易部署、易使用,存儲數據非常方便。
MongoDB 簡單使用
聯接資料庫
復制代碼代碼如下:

In [1]: import pymongo
In [2]: from pymongo import Connection
In [3]: connection = Connection('192.168.1.3', 27017) //創建聯接

Connection 相關參數
復制代碼代碼如下:

Connection([host='localhost'[, port=27017[, pool_size=None[, auto_start_request=None[, timeout=None[, slave_okay=False[, network_timeout=None[, document_class=dict[, tz_aware=True]]]]]]]]])

資料庫操作
復制代碼代碼如下:

In [9]: c.database_names() //列出所有資料庫名稱
Out[9]: [u'test', u'admin', u'yuhen', u'sms', u'local']
In [10]: c.server_info() //查看伺服器相關信息
Out[10]:
{u'bits': 64,
u'gitVersion': u'nogitversion',
u'ok': 1.0,
u'sysInfo': u'Linux yellow 2.6.24-27-server #1 SMP Fri Mar 12 01:23:09 UTC 2010 x86_64 BOOST_LIB_VERSION=1_40',
u'version': u'1.2.2'}
In [16]: db = c['test']//選擇資料庫
In [17]: db.collection_names() //列出當前資料庫中所有集合名稱
Out[17]: [u'system.indexes', u'fs.files', u'fs.chunks', u'test_gao']
In [23]: db.connection //查看聯接信息
Out[23]: Connection('192.168.1.3', 27017)
In [24]: db.create_collection('test_abeen') //創建新集合
Out[24]: Collection(Database(Connection('192.168.1.3', 27017), u'test'), u'test_abeen')
In [25]: db.last_status() //查看上次操作狀態
Out[25]: {u'err': None, u'n': 0, u'ok': 1.0}
In [26]: db.name //查看當前資料庫名稱
Out[26]: u'test'
In [27]: db.profiling_info() //查看配置信息
Out[27]: []
In [28]: db.profiling_level()
Out[28]: 0.0

集合操作

復制代碼代碼如下:

In [31]: db.collection_names() //查看當前資料庫所有集合名稱
Out[31]:
[u'system.indexes',
u'fs.files',
u'fs.chunks',
u'test_gao',
u'system.users',
u'test_abeen']
In [32]: c = db.test_abeen //選擇集合
In [33]: c.name //查看當前集合名稱
Out[33]: u'test_abeen'
In [35]: c.full_name //查看當前集合全名
Out[35]: u'test.test_abeen'
In [36]: c.database //查看當前集合資料庫相關信息
Out[36]: Database(Connection('192.168.1.3', 27017), u'test')
In [38]: post = {"author":"Mike","text":"this is a test by abeen"}
In [39]: posts = db.posts
In [40]: posts.insert(post) //向資料庫集合插入文檔,默認創建集合
Out[40]: ObjectId('4c358492421aa91e70000000')
In [41]: db.collection_names() //顯示所有集合名稱
Out[41]:
[u'system.indexes',
u'fs.files',
u'fs.chunks',
u'test_gao',
u'system.users',
u'test_abeen',
u'posts']
In [42]: posts.find_one() //從集合查找信息
Out[42]:
{u'_id': ObjectId('4c358492421aa91e70000000'),
u'author': u'Mike',
u'text': u'this is a test by abeen'}
In [52]: p.update({"author":"Mike"},{"$set":{"author":"abeen","text":"this is a test by abeen shan shan"}})//更新集合文檔信息
In [55]: list(p.find())
Out[55]:
[{u'_id': ObjectId('4c358492421aa91e70000000'),
u'author': u'abeen',
u'text': u'this is a test by abeen shan shan'}]
In [96]: list(posts.find())
Out[96]:
[{u'_id': ObjectId('4c358492421aa91e70000000'),
u'author': u'Mike',
u'text': u'this is a test by abeen'},
{u'_id': ObjectId('4c358ad4421aa91e70000002'), u'a': u'aa', u'b': u'bb'},
{u'_id': ObjectId('4c358ad9421aa91e70000003'), u'a': u'aa', u'b': u'bb'},
{u'_id': ObjectId('4c358abb421aa91e70000001'),
u'a': u'abeen',
u'b': u'this bb is updated'}]
In [97]: posts.remove({"a":"abeen"}) //刪除符合條件的文檔
In [98]: list(posts.find())
Out[98]:
[{u'_id': ObjectId('4c358492421aa91e70000000'),
u'author': u'Mike',
u'text': u'this is a test by abeen'},
{u'_id': ObjectId('4c358ad4421aa91e70000002'), u'a': u'aa', u'b': u'bb'},
{u'_id': ObjectId('4c358ad9421aa91e70000003'), u'a': u'aa', u'b': u'bb'}]
In [102]: db.collection_names()
Out[102]:
[u'system.indexes',
u'fs.files',
u'fs.chunks',
u'test_gao',
u'system.users',
u'test_abeen',
u'posts',
u'doc_abeen']
In [104]: db.drop_collection("doc_abeen") //刪除集合
In [105]: db.collection_names()
Out[105]:
[u'system.indexes',
u'fs.files',
u'fs.chunks',
u'test_gao',
u'system.users',
u'test_abeen',
u'posts']

代碼

復制代碼代碼如下:

In [113]: result = db.posts.find({"a":"aa"})//查找
In [114]: type(result)
Out[114]: <class 'pymongo.cursor.Cursor'>
In [119]: list(result)
Out[119]:
[{u'_id': ObjectId('4c358ad4421aa91e70000002'), u'a': u'aa', u'b': u'bb'},
{u'_id': ObjectId('4c358ad9421aa91e70000003'), u'a': u'aa', u'b': u'bb'}]

find格式

復制代碼代碼如下:

find([spec=None[, fields=None[, skip=0[, limit=0[, timeout=True[, snapshot=False[, tailable=False[, sort=None[, max_scan=None[, as_class=None[, **kwargs]]]]]]]]]]])

代碼

復制代碼代碼如下:

In [120]: db.posts.count()//當前集合文檔數
Out[120]: 3
In [121]: type(db.posts)
Out[121]: <class 'pymongo.collection.Collection'>
In [138]: posts.rename('test_abeen')//重命名當前集合
In [139]: db.collection_names()
Out[139]:
[u'system.indexes',
u'fs.files',
u'fs.chunks',
u'test_gao',
u'system.users',
u'test_abeen']
In [151]: for post in c.find({"a":"aa"}).sort("a"): //查詢並排序列
post
Out[152]: {u'_id': ObjectId('4c358ad4421aa91e70000002'), u'a': u'aa', u'b': u'bb'}
Out[152]: {u'_id': ObjectId('4c358ad9421aa91e70000003'), u'a': u'aa', u'b': u'bb'}

復制代碼代碼如下:

> db.foo.insert( { x : 1, y : 1 } )
> db.foo.insert( { x : 2, y : "string" } )
> db.foo.insert( { x : 3, y : null } )
> db.foo.insert( { x : 4 } )
// Query #1 y為null或不存在
> db.foo.find( { "y" : null } )
{ "_id" : ObjectId("4dc1975312c677fc83b5629f"), "x" : 3, "y" : null }
{ "_id" : ObjectId("4dc1975a12c677fc83b562a0"), "x" : 4 }
// Query #2 y為null的值
> db.foo.find( { "y" : { $type : 10 } } )
{ "_id" : ObjectId("4dc1975312c677fc83b5629f"), "x" : 3, "y" : null }
// Query #3 y不存在的結果
> db.foo.find( { "y" : { $exists : false } } )
{ "_id" : ObjectId("4dc1975a12c677fc83b562a0"), "x" : 4 }

❺ mongodb 支持聯合查詢嗎

mongodb 支持聯合查詢

下圖表示帖子和用戶兩個Collection的ER圖:

首先將authors集合中的用戶對象查詢出來,放在一個變數author中,代碼如下:

Shell代碼

>author=db.authors.findOne({name:"chenzhou"})

{

"_id":ObjectId("5030ba7621bdee44765b2147"),

"name":"chenzhou",

"email":"[email protected]"

}

通過用戶對象author來獲取帖子列表,代碼如下:

Shell代碼

>for(varpost=db.posts.find({"author_name":author.name});post.hasNext();){

...printjson(post.next().title);

...}

"HelloMongodb"

"HelloWorld"

"HelloMyFriend"

❻ mongodb 實現具有父子關系的查詢,通過id查詢該id下所有子集包括子集的子集(直至最後一級)如何實現

創建Mongodb資料庫由於Mongodb不是關系型資料庫文件,實際上,它並不存在傳統關系型資料庫中的所謂「資料庫」的概念,但不用擔心,當你第一次新增數據時,mongodb就會以collection集合的形式進行保存和新建,而不需要你手工去新建立。下面是例子:1)列出當前的資料庫MongoDBshellversion:1.8.1connectingto:test>showdbs--admin0.03125GBlocal(empty)可以使用showdbs來列出當前有多少個資料庫,上面看到的是有兩個,分別是admin和local。2)定義新的資料庫名我們通過使用「usenew-databasename」的語法去使用一個新的資料庫,注意,即使你的資料庫還沒建立起來,依然可以這樣使用,因為mongodb會在真正插入了數據後,才會真正建立起來。>>showdbsadmin0.03125GBlocal(empty)注意,在usemkyongdb後,mkyongdb實際上還沒真正建立起來,只是表明目前是在使用mkyongdb了。3)保存數據定義一個collection,名為「users」,然後插入數據,如下:>db.users.save({username:"mkyong"})>db.users.find(){"_id":ObjectId("4dbac7bfea37068bd0987573"),"username":"mkyong"}>>showdbs--admin0.03125GBlocal(empty)mkyongdb0.03125GB可以看到,用db.users.find()可以找出已插入的數據。這個時候,名為「users」的collection已經建立起來了,同時,資料庫mkyongdb也建立起來了。

❼ java如何實現mongodb中查詢指定欄位

MongoClient mongoClient=new MongoClient("localhost",27017);//連接資料庫
MongoDatabase database=mongoClient.getDatabase("db");//獲取資料庫
MongoCollection<Document> collection=database.getCollection("集合");//獲取集合
System.out.println("請輸入需要查詢的欄位:");
Scanner scanner=new Scanner(System.in);
String j=scanner.next();
FindIterable<Document> docs= collection.find(Filters.eq("欄位",j);//查詢結果
(這里還有另外一種寫法,可以供兄弟參考。
FindIterable f = users.find();
MongoCursor cur = f.iterator();

閱讀全文

與javamongodb關聯查詢相關的資料

熱點內容
cad新文件能找回來嗎 瀏覽:951
導出手機qq文件到u盤 瀏覽:456
電腦如何打開ppt文件怎麼打開方式 瀏覽:782
魅族鎖定區文件夾 瀏覽:357
刻字cnc怎麼編程 瀏覽:182
學校的網路拓撲結構圖 瀏覽:784
收集100個pdf文件里關鍵詞 瀏覽:594
蘋果關閉4g網路設置 瀏覽:289
如何監測資料庫 瀏覽:967
拷貝過來的pdf文件 瀏覽:751
抖音小店的訪客數據怎麼看 瀏覽:670
怎麼把c語言編程的字元向下移動 瀏覽:786
sql刪除文件組代碼 瀏覽:978
安卓post請求多重json 瀏覽:776
微信消除數據怎麼恢復 瀏覽:918
小米刷機顯示系統找不到指定文件 瀏覽:528
蘋果手機小風扇圖app叫什麼 瀏覽:292
繁體中文輸入工具 瀏覽:916
pc桌面壁紙文件夾 瀏覽:473
微信怎麼添加群 瀏覽:781

友情鏈接