最近在使用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?
1条答案
按热度按时间bvjxkvbb1#
所以问题出在你正在使用的查询上。到目前为止,您的查询是创建一个新文档,而不是查询数据库。
因此,请更新查询以包含
find
方法。