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})