![](/img/trans.png)
[英]Can't set new value inside updateOne hooks in Mongoose while updating
[英]mongodb nodejs driver updateOne doesn't set a new value
我正在嘗試更新mongodb用戶文檔。 如下
{
"_id":"123",
"email":"sam@example.com"
}
我想在此文檔中添加一個字段“名稱”。
我的代碼如下
async function test() {
const user = {"_id":"123", "email" : "sam@example.com" };
async function setUsername(user, update) {
await userCollection.updateOne(user, update);
}
await setUsername(user, { $set: { name: "sam"} });
}
test();
但是,當我在數據庫中看到時,看不到文檔中設置的字段。
我確定我某種程度上缺少節點驅動程序的實現方式,但是我不確定這個問題。
我什至嘗試使用upsert:true選項,因為該文檔已存在,這給了我一個錯誤。
我想我給函數名稱指定了錯誤,並且我之前沒有創建文檔。
發布有效的最終代碼段:
const { MongoClient } = require("mongodb");
async function test() {
const mclient = await MongoClient.connect("mongodb://localhost:27017/?w=1", {
useNewUrlParser: true
});
const db = mclient.db("test");
const userCollection = db.collection("user");
const user = { _id: "123", email: "sam@example.com" };
function setUsername(user, update) {
return userCollection.updateOne(user, update);
}
await setUsername(user, { $set: { name: "sam" } });
}
(async () => {
test();
})();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.