mongodb mongoose find()返回与存储在集合中的不同的_id

mmvthczy  于 2023-06-22  发布在  Go
关注(0)|答案(1)|浏览(140)

最近在使用MongoDB时遇到了一些非常奇怪的事情。
当我查询一个文档的集合时,它似乎为查询的文档创建了一个new_id,而不返回存储在DB中的_id。
例如:
在我的数据库中,我创建了一个名为user_types的集合。它有两个文件:

{
  "_id": {
    "$oid": "6480989a8e96e5da4f9c8488"
  },
  "type": "User"
}, 
{
  "_id": {
    "$oid": "6480986b8e96e5da4f9c8487"
  },
  "type": "Admin"
}

我定义了一个user_types的Schema,如下所示:

const user_types_Schema = new Schema({
    type: String
}, {versionKey: false});

然后从中创建一个模型,并将其连接到数据库中的user_types集合:

const UserType = mongoose.model('UserType', user_types_Schema, 'user_types');

现在,当我尝试使用mongoose和这样的模型进行查询时:

const query = await UserType.find({type: 'User'});

返回:{ type: 'User', _id: new ObjectId("6492e2b6a618d51eeb7e63a9")
请注意,此查询返回的_id与数据库中的不同。
我做错什么了吗?
有没有一种方法可以获取存储在数据库中的original_id?

bvjxkvbb

bvjxkvbb1#

所以问题出在你正在使用的查询上。到目前为止,您的查询是创建一个新文档,而不是查询数据库。
因此,请更新查询以包含find方法。

const query = await UserType.find({type: 'User'})

相关问题