nodejs渐入佳境[18]-mongodb-node增删查改
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以上写法
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的方法,为我们产生一个随机数。
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');
//返回所有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();
});
执行代码返回:
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
}
]
筛选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();
});
执行代码返回:
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'}); 删除全部
//删除一个
// db.collection('Todos').deleteOne({text:'mike'}).then((result)=>{
// console.log(result);
// });
//删除并返回对象
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协议许可协议。转载请注明出处!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。