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
| const MongoClient = require('mongodb').MongoClient;
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的方法,为我们产生一个随机数。 1 2 3 4 5
| const {MongoClient,ObjectID} = require('mongodb'); var obj = new ObjectID(); console.log(obj);
console.log(obj.getTimestamp());
|
参考资料: MongoDB Node.js Driver Documentation node-mongodb-native 查询原始数据: 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');
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(); });
|
执行代码返回: 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();
});
|
执行代码返回: 1 2 3 4 5 6 7
| [ { "_id": "5beeaf0a2d48eb2b7c90758f", "text": "Something to do", "completed": true } ]
|
筛选id1 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();
});
|
执行代码返回: 1 2 3 4 5 6 7
| [ { "_id": "5beeaf0a2d48eb2b7c90758f", "text": "Something to do", "completed": true } ]
|
删除document1 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').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 } },{ returnOriginal:false }).then((result)=>{ console.log(result); });
client.close(); });
|
本文链接: https://dreamerjonson.com/2018/11/16/node-18-mongodb-node/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!

|