使用Mongodb插入數(shù)據(jù)時,會自動的生成ObjectId做為數(shù)據(jù)的主鍵。可當我們直接使用id時,條件卻不生效,那么應該如何通過ObjectId來做條件了?
Mongodb生成一條數(shù)據(jù)
{
_id: 5ec8a72dcac5690e270539a2,
title: '生活是什么?',
content: '<p>生活是什么?生活是柴米油鹽的平淡;是行色匆匆早出晚歸的奔波;生活是錯的時間遇到對的人的遺憾;是愛的付出與回報;生活是看不同的風景,遇到不同的人;是行至水窮盡,坐看云起時的峰回路轉(zhuǎn);生活是靈魂經(jīng)歷傷痛后的微笑怒放;是<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轉(zhuǎn)為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