最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

mongodb中的

IT培训 admin 4浏览 0评论

mongodb中的

我正在尝试查询特定的文档,然后删除该文档。

我可以通过以下方式成功查询文档:

export async function findRecord(database, sub_db, query) {
    let output = "";
    const mongo = require('mongodb').MongoClient
    const url = "mongodb+srv://...";
    const client = await mongo.connect(url, {useNewUrlParser: true,useUnifiedTopology: true});

    const db = client.db(database)
    const collection = db.collection(sub_db)
    const items = await collection.find(query).toArray();
    client.close()
    return items;
}

但是当我console.log数据时,我的_id位于数组中。看起来像这样:

在MongoDB文档中,我看到这样查询:{“ _id”:ObjectId(“ 568c28fffc4be30d44d0398e”)},但是因为它打印了一个数组,所以无法使它看起来像这样。

前端:

export async function button3_click(event) {
    let query = {}
    let output = await findRecord("domains","domains", query)
    console.log(output)
    let record_to_delete = output[0]._id
    console.log(record_to_delete)
    await deleteRecord("domains","domains",record_to_delete)
}

后端:

export async function deleteRecord(database, sub_db, record_idobj) {
    let output = "";
    const mongo = require('mongodb').MongoClient
    const url = "mongodb+srv://...";
    const client = await mongo.connect(url, {useNewUrlParser: true,useUnifiedTopology: true});

    const db = client.db(database)
    const collection = db.collection(sub_db)
    await collection.deleteOne({"_id": record_idobj})
    client.close()
}

我的最终目标是能够被_id删除...

注意:我的前端代码可能看起来很奇怪,因为我使用的是Wix代码,但其他一切都应该没问题。

回答如下:

请尝试使用findOne代替find

collection.findOne({_id: _id})

mongodb中的

我正在尝试查询特定的文档,然后删除该文档。

我可以通过以下方式成功查询文档:

export async function findRecord(database, sub_db, query) {
    let output = "";
    const mongo = require('mongodb').MongoClient
    const url = "mongodb+srv://...";
    const client = await mongo.connect(url, {useNewUrlParser: true,useUnifiedTopology: true});

    const db = client.db(database)
    const collection = db.collection(sub_db)
    const items = await collection.find(query).toArray();
    client.close()
    return items;
}

但是当我console.log数据时,我的_id位于数组中。看起来像这样:

在MongoDB文档中,我看到这样查询:{“ _id”:ObjectId(“ 568c28fffc4be30d44d0398e”)},但是因为它打印了一个数组,所以无法使它看起来像这样。

前端:

export async function button3_click(event) {
    let query = {}
    let output = await findRecord("domains","domains", query)
    console.log(output)
    let record_to_delete = output[0]._id
    console.log(record_to_delete)
    await deleteRecord("domains","domains",record_to_delete)
}

后端:

export async function deleteRecord(database, sub_db, record_idobj) {
    let output = "";
    const mongo = require('mongodb').MongoClient
    const url = "mongodb+srv://...";
    const client = await mongo.connect(url, {useNewUrlParser: true,useUnifiedTopology: true});

    const db = client.db(database)
    const collection = db.collection(sub_db)
    await collection.deleteOne({"_id": record_idobj})
    client.close()
}

我的最终目标是能够被_id删除...

注意:我的前端代码可能看起来很奇怪,因为我使用的是Wix代码,但其他一切都应该没问题。

回答如下:

请尝试使用findOne代替find

collection.findOne({_id: _id})

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论