在 Node JS 中按 ID 问题 findOne

问题描述

我有一个很奇怪的问题。

查看下面的代码

const pqr = new ObjectId(smsId);
console.log('pqr',pqr)
docDB.collection(constants.prefix.mongo.COLLECTION_NOTIFICATION)
  .findOne(({ "_id": pqr },(err,notificationDetails) => {
    console.log('smsId 3',smsId)
    console.log('notificationDetails',notificationDetails) })

下面是输出

pqr 60986d6210a23dcec4b01e99 // see here
smsId 3 60986d6210a23dcec4b01e99
notificationDetails {
  _id: 60986b7e10a23dcec4b01e96,// and here
  highPriority: true,.....

我得到的 _id 与搜索到的不同。

数据库是amazon documentDB。 客户端是 nodejs 客户端。

可能是什么问题?

解决方法

var mongoose = require('mongoose');
const pqr = mongoose.Types.ObjectId(smsId);

试试这个。如果您使用的是 Mongoose 库。

如果你使用的是 Mongodb 库,那么试试这个。

const { ObjectId } = require('mongodb');
const pqr = ObjectId(smsId);