Database 我能';t使用MongoDB with Next.js向我的文档添加新字段

Database 我能';t使用MongoDB with Next.js向我的文档添加新字段,database,mongodb,next.js,Database,Mongodb,Next.js,我想在文档中添加一个新字段(公司)。我的整个API是: import { connectToDatabase } from "../../utils/mongodb"; import { getSession } from 'next-auth/client' export default async (req, res) => { const { db } = await connectToDatabase(); const { name } = req.

我想在文档中添加一个新字段(公司)。我的整个API是:

import { connectToDatabase } from "../../utils/mongodb";
import { getSession } from 'next-auth/client'


export default async (req, res) => {
  const { db } = await connectToDatabase();
  const { name } = req.body

  const session = await getSession({ req });

  const a = await db
    .collection("users").update({"_id": session.id},{$set: {company: { general: {name: req.body.name} }}})
};
但是文档没有更新

当前文件:

{
_id: "id"
name: "Test"
email: "test@somemmmail.com"
image: "..."
createdAt: "2020-10-29T16:25:08.908+00:00"
updatedAt: "2020-10-29T16:25:08.908+00:00"
}
但我想添加一个公司字段:

{
    _id: "id"
    name: "Test"
    email: "test@somemmmail.com"
    image: "..."
    createdAt: "2020-10-29T16:25:08.908+00:00"
    updatedAt: "2020-10-29T16:25:08.908+00:00"
    company: [{general: "someinfo"}]
    }

我正在使用Next.js&MongoDB包。

问题是您需要将
session.id
字符串转换为mongo
ObjectId(session.id)
object:

使用以下方法查看此屏幕截图:

无结果:

db.users.find({ "_id": "5fa1e18be3a0523e5ce6c50f" })
db.users.find({ "_id": ObjectId("5fa1e18be3a0523e5ce6c50f") })
找到匹配项:

db.users.find({ "_id": "5fa1e18be3a0523e5ce6c50f" })
db.users.find({ "_id": ObjectId("5fa1e18be3a0523e5ce6c50f") })
请注意,由于您只需要查找一个要更新的文档,因此我建议您进行更新