我試圖從 mongo 檔案中只選擇一個欄位并列印它的值。我找到了這個答案https://stackoverflow.com/a/25589150,它展示了我們如何實作這一目標。下面我嘗試做同樣的事情,但最終列印了整個檔案。
const mongoHost =
'somemongourl'
const mongodb = require('mongodb');
const { MongoClient } = mongodb;
MongoClient.connect(
mongoHost,
{ useNewUrlParser: true },
async (error, client) => {
if (error) {
return console.log('Unable to connect to database!');
}
const db = client.db('cartDatabase');
const values = await db
.collection('cart')
.find({ customer_key: 'c_1' }, { customer_key: 1, _id: 0 })
.toArray();
console.log(values);
}
);
這是例如我得到的輸出:-
[
{
_id: new ObjectId("611b7d1a848f7e6daba69014"),
customer_key: 'c_1',
products: [ [Object] ],
coupon: '',
discount: 0,
vat: 0,
cart_total: 999.5,
cart_subtotal: 999.5
}
]
這正是我所期待的——
[
{
customer_key: 'c_1'
}
]
uj5u.com熱心網友回復:
projection如果您希望投影檔案,標準 Node.js MongoDB 驅動程式需要options 引數的頂級屬性。這將導致您find()呼叫的第二個引數如下所示:
{ projection: { customer_key: 1, _id: 0 } }
這在 Node.js MongoDB 驅動程式 API 檔案中有所說明,這與 MongoDB shell API 顯然不是一對一的匹配。
截至本回答發布之時,您可以在此處找到collection.find()參考資料。此參考顯示了以下方法簽名(再次在撰寫此答案時):
find(filter: Filter<WithId<TSchema>>, options?: FindOptions<Document>)
跟隨FindOptions引數將我們帶到此參考頁面,其中詳細介紹了該find()方法可用的各種頂級選項屬性。其中包括有projection問題的財產。
簡而言之,不要使用普通的 MongoDB 檔案作為您的編程語言的 MongoDB 驅動程式 API 的參考。兩者之間經常會出現脫節。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391372.html
上一篇:node.js6.0.0緩沖區到python3中的等效字串
下一篇:discord/js和圓弧角函式
