温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

nodejs渐入佳境[18]-mongodb-node增删查改

发布时间:2020-07-02 05:30:20 阅读:136 作者:jonson_jackson 栏目:开发技术
GO开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>
1
> npm install --save mongodb
12345678910111213141516171819202122232425
//mongodb 3以上写法const MongoClient = require('mongodb').MongoClient;//TodoApp是一个数据库名字,mongo中不需要创建数据库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').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));  });//关闭客户端  client.close();});

id

插入一个对象的时候,会自动的产生一个随机的id。id包含了时间戳和机器识别码。
我们可以借助与mongo的方法,为我们产生一个随机数。

12345
const {MongoClient,ObjectID} = require('mongodb');var obj = new ObjectID();console.log(obj);//返回时间console.log(obj.getTimestamp());

参考资料:
MongoDB Node.js Driver Documentation
node-mongodb-native

查询

原始数据:

123456789101112
[  {    "_id": "5bee9e3794c5f22eb989f6eb",    "text": "Something to do",    "completed": false  },  {    "_id": "5beeaf0a2d48eb2b7c90758f",    "text": "Something to do",    "completed": true  }]

js代码:

12345678910111213141516171819
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();});

执行代码返回:

123456789101112
[  {    "_id": "5bee9e3794c5f22eb989f6eb",    "text": "Something to do",    "completed": false  },  {    "_id": "5beeaf0a2d48eb2b7c90758f",    "text": "Something to do",    "completed": true  }]

筛选

123456789101112131415161718
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();});

执行代码返回:

1234567
[  {    "_id": "5beeaf0a2d48eb2b7c90758f",    "text": "Something to do",    "completed": true  }]
筛选id
1234567891011121314151617181920
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();});

执行代码返回:

1234567
[  {    "_id": "5beeaf0a2d48eb2b7c90758f",    "text": "Something to do",    "completed": true  }]

删除document

1234567891011121314151617181920212223
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'});  删除全部//删除一个  // db.collection('Todos').deleteOne({text:'mike'}).then((result)=>{  //     console.log(result);  // });//删除并返回对象  db.collection('Todos').findOneAndDelete({text:'mike'}).then((result)=>{      console.log(result);  });  client.close();});

更新

12345678910111213141516171819202122
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       //设置更改    }  },{    returnOriginal:false  //返回的结果为更新后的值。  }).then((result)=>{    console.log(result); //打印跟新结果  });  client.close();});
  • 本文链接: https://dreamerjonson.com/2018/11/16/node-18-mongodb-node/

  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!

nodejs渐入佳境[18]-mongodb-node增删查改

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI

开发者交流群×