使用Mongodb
插入数据时,会自动的生成ObjectId
做为数据的主键??傻蔽颐侵苯邮褂?code>id时,条件却不生效,那么应该如何通过ObjectId
来做条件了?
Mongodb生成一条数据
{
_id: 5ec8a72dcac5690e270539a2,
title: '生活是什么?',
content: '<p>生活是什么?生活是柴米油盐的平淡;是行色匆匆早出晚归的奔波;生活是错的时间遇到对的人的遗憾;是爱的付出与回报;生活是看不同的风景,遇到不同的人;是行至水穷尽,坐看云起时的峰回路转;生活是灵魂经历伤痛后的微笑怒放;是<a >挫折</a>坎坷被晾晒后的<a ,
createTime: 1590208301037,
username: '桃白白'
}
上面的_id值5ec8a72dcac5690e270539a2
就是mongodb
自动分配的。
使用ObjectId
作为条件
_id的值5ec8a72dcac5690e270539a2并非字符串,而是ObjectId对象类型。因此简单的使用是不行的:
var model = require('../model')
model.connect(function(db) {
db.collection('articles').deleteOne({_id: id}, function(err, result) {
if (err) {
console.log('删除失败: ', err)
} else {
console.log('删除成功')
}
})
})
需要将上面的id转为ObjectId对象类型,参考如下:
var model = require('../model')
// 引用ObjectId类型
var ObjectId = require('mongodb').ObjectId
model.connect(function(db) {
db.collection('articles').deleteOne({_id: ObjectId(id)}, function(err, result) {
if (err) {
console.log('删除失败: ', err)
} else {
console.log('删除成功')
}
})
})
参考引用
- MongoDB ObjectId: https://www.runoob.com/mongodb/mongodb-objectid.html