Vpp*_*Man 5 mongoose mongodb node.js reactjs next.js
当我尝试查询时,结果包含_id带有“new ObjectId()”的字段。如何避免这种“new ObjectId()”并仅将哈希值包含为字符串。由于此问题,将数据作为 JSON 响应发送回失败。
下面是一个基本的demo:
我的查询代码:
book_data = await Book.find({ slug: 'test' }).
where('status').equals('Active').select('title').exec()
console.log( book_data )
Run Code Online (Sandbox Code Playgroud)
回复:
[
{
_id: new ObjectId("6164aff742da0eac31a87b9a"),
title: 'Test'
}
]
Run Code Online (Sandbox Code Playgroud)
您可以将选项对象传递给该.find方法。在那里,您可以通过提供 0 作为值来指定要忽略的字段。
像这样的事情应该可以解决问题:
book_data = await Book.find(
{ slug: 'test' }, // Query
{ _id: 0 } // Options
).where('status').equals('Active').select('title').exec();
Run Code Online (Sandbox Code Playgroud)
虽然上面的查询应该可以解决问题,但我相信这意味着您也可以这样做:
book_data = await Book.find(
// Query
{ slug: 'test', status: 'Active' },
// Options
{ _id: 0, title: 1 }
).exec();
Run Code Online (Sandbox Code Playgroud)
我找到了一个更好的方法来做到这一点通过.find..
您的代码如下所示:
book_data = await Book.find({
slug: "test",
status: "active"
},
{
title: 1,
_id: {
"$toString": "$_id"
}
}).exec();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4439 次 |
| 最近记录: |