當我嘗試查詢時,結果包含_id帶有“new ObjectId()”的欄位。如何避免這種“new ObjectId()”并且只包含哈希值作為字串。由于此問題,將資料作為 JSON 回應發回失敗。
下面是一個基本的演示:
我的查詢代碼:
book_data = await Book.find({ slug: 'test' }).
where('status').equals('Active').select('title').exec()
console.log( book_data )
回復:
[
{
_id: new ObjectId("6164aff742da0eac31a87b9a"),
title: 'Test'
}
]
uj5u.com熱心網友回復:
您可以將選項物件傳遞給該.find方法。在那里,您可以通過提供 0 作為值來指定要忽略的欄位。
請參閱此處了解更多資訊。
像這樣的事情應該可以解決問題:
book_data = await Book.find(
{ slug: 'test' }, // Query
{ _id: 0 } // Options
).where('status').equals('Active').select('title').exec();
雖然上面的查詢應該可以解決問題,但我相信這意味著您也可以這樣做:
book_data = await Book.find(
// Query
{ slug: 'test', status: 'Active' },
// Options
{ _id: 0, title: 1 }
).exec();
編輯 2
我找到了一個更好的方法來做到這一點通過.find..
蒙戈游樂場
這就是您的代碼的樣子:
book_data = await Book.find({
slug: "test",
status: "active"
},
{
title: 1,
_id: {
"$toString": "$_id"
}
}).exec();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/321283.html
