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包含了时间戳和机器识别码。
我们可以借助与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 }] |
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 }] |
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协议 许可协议。转载请注明出处!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。