npm install --save mongodb12345678910111213141516171819202122232425//mongodb 3以上寫(xiě)法const MongoClient = require('mongodb').MongoClient;//..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nodejs漸入佳境[18]-mongodb-node增刪查改

發(fā)布時(shí)間:2020-07-02 05:30:20 來(lái)源:網(wǎng)絡(luò) 閱讀:127 作者:jonson_jackson 欄目:開(kāi)發(fā)技術(shù)
1
> npm install --save mongodb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//mongodb 3以上寫(xiě)法
const MongoClient = require('mongodb').MongoClient;

//TodoApp是一個(gè)數(shù)據(jù)庫(kù)名字,mongo中不需要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)
MongoClient.connect('mongodb://localhost:27017/TodoApp',(err,client)=>{
   if(err){
     return console.log('Unable to connect to MongoDB server');
   }
   console.log('Connect to MongoDB server');
 const db = client.db('TodoApp');

 //插入數(shù)據(jù)
 db.collection('Todos').insertOne({
   text:'Something to do',
   completed:false
 },(err,result)=>{
   if(err){
       return console.log('unable to insert todo',err);
   }
       console.log(JSON.stringify(result.ops,undefined,2));
 });
//關(guān)閉客戶端
 client.close();

});

id

插入一個(gè)對(duì)象的時(shí)候,會(huì)自動(dòng)的產(chǎn)生一個(gè)隨機(jī)的id。id包含了時(shí)間戳和機(jī)器識(shí)別碼。
我們可以借助與mongo的方法,為我們產(chǎn)生一個(gè)隨機(jī)數(shù)。

1
2
3
4
5
const {MongoClient,ObjectID} = require('mongodb');
var obj = new ObjectID();
console.log(obj);
//返回時(shí)間
console.log(obj.getTimestamp());

參考資料:
MongoDB Node.js Driver Documentation
node-mongodb-native

查詢

原始數(shù)據(jù):

1
2
3
4
5
6
7
8
9
10
11
12
[
 {
   "_id": "5bee9e3794c5f22eb989f6eb",
   "text": "Something to do",
   "completed": false
 },
 {
   "_id": "5beeaf0a2d48eb2b7c90758f",
   "text": "Something to do",
   "completed": true
 }
]

js代碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const {MongoClient,ObjectID} = require('mongodb');

MongoClient.connect('mongodb://localhost:27017/TodoApp',(err,client)=>{
   if(err){
     return console.log('Unable to connect to MongoDB server');
   }
   console.log('Connect to MongoDB server');
 const db = client.db('TodoApp');

 //返回所有document
 db.collection('Todos').find().toArray().then((docs)=>{
   console.log('Todos');
   console.log(JSON.stringify(docs,undefined,2));
 },(err)=>{
   console.log('unable to fetch todos', err);
 })

 client.close();
});

執(zhí)行代碼返回:

1
2
3
4
5
6
7
8
9
10
11
12
[
 {
   "_id": "5bee9e3794c5f22eb989f6eb",
   "text": "Something to do",
   "completed": false
 },
 {
   "_id": "5beeaf0a2d48eb2b7c90758f",
   "text": "Something to do",
   "completed": true
 }
]

篩選

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const {MongoClient,ObjectID} = require('mongodb');

MongoClient.connect('mongodb://localhost:27017/TodoApp',(err,client)=>{
   if(err){
     return console.log('Unable to connect to MongoDB server');
   }
   console.log('Connect to MongoDB server');
 const db = client.db('TodoApp');
 db.collection('Todos').find({completed:true}).toArray().then((docs)=>{
   console.log('Todos');
   console.log(JSON.stringify(docs,undefined,2));
 },(err)=>{
   console.log('unable to fetch todos', err);
 })

 client.close();

});

執(zhí)行代碼返回:

1
2
3
4
5
6
7
[
 {
   "_id": "5beeaf0a2d48eb2b7c90758f",
   "text": "Something to do",
   "completed": true
 }
]
篩選id
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
const {MongoClient,ObjectID} = require('mongodb');

MongoClient.connect('mongodb://localhost:27017/TodoApp',(err,client)=>{
   if(err){
     return console.log('Unable to connect to MongoDB server');
   }
   console.log('Connect to MongoDB server');
 const db = client.db('TodoApp');
 db.collection('Todos').find({
   new ObjectID('5beeaf0a2d48eb2b7c90758f')
 }).toArray().then((docs)=>{
   console.log('Todos');
   console.log(JSON.stringify(docs,undefined,2));
 },(err)=>{
   console.log('unable to fetch todos', err);
 })

 client.close();

});

執(zhí)行代碼返回:

1
2
3
4
5
6
7
[
 {
   "_id": "5beeaf0a2d48eb2b7c90758f",
   "text": "Something to do",
   "completed": true
 }
]

刪除document

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const {MongoClient,ObjectID} = require('mongodb');

MongoClient.connect('mongodb://localhost:27017/TodoApp',(err,client)=>{
   if(err){
     return console.log('Unable to connect to MongoDB server');
   }
   console.log('Connect to MongoDB server');
 const db = client.db('TodoApp');
//  db.collection('Todos').deleteMany({text:'mike'});  刪除全部

//刪除一個(gè)
 // db.collection('Todos').deleteOne({text:'mike'}).then((result)=>{
 //     console.log(result);
 // });

//刪除并返回對(duì)象
 db.collection('Todos').findOneAndDelete({text:'mike'}).then((result)=>{
     console.log(result);
 });

 client.close();

});

更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const {MongoClient,ObjectID} = require('mongodb');

MongoClient.connect('mongodb://localhost:27017/TodoApp',(err,client)=>{
   if(err){
     return console.log('Unable to connect to MongoDB server');
   }
   console.log('Connect to MongoDB server');
 const db = client.db('TodoApp');

//查找并更新
 db.collection('Todos').findOneAndUpdate({text:'mike'},{
   $set:{
     completed:false       //設(shè)置更改
   }
 },{
   returnOriginal:false  //返回的結(jié)果為更新后的值。
 }).then((result)=>{
   console.log(result); //打印跟新結(jié)果
 });

 client.close();
});
  • 本文鏈接: https://dreamerjonson.com/2018/11/16/node-18-mongodb-node/

  • 版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY 4.0 CN協(xié)議 許可協(xié)議。轉(zhuǎn)載請(qǐng)注明出處!

nodejs漸入佳境[18]-mongodb-node增刪查改

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI