mongodb nodejs 驱动程序 updateOne 没有设置新值
mongodb nodejs driver updateOne doesn't set a new value
我正在尝试更新 mongodb 用户文档。如下
{
"_id":"123",
"email":"sam@example.com"
}
我想向此文档添加一个字段 'name'。
我的代码如下
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();
})();
我正在尝试更新 mongodb 用户文档。如下
{
"_id":"123",
"email":"sam@example.com"
}
我想向此文档添加一个字段 'name'。
我的代码如下
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();
})();