Mongodb的ObjectId作為查詢/刪除條件

使用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('刪除成功')
            }
        })
    })

參考引用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容