MST

星途 面试题库

面试题:MongoDB删除文档方法及简单条件参数应用

在MongoDB中,简述使用`deleteOne`和`deleteMany`方法删除文档的区别。假设有一个集合`students`,包含学生信息,其中有字段`age`表示年龄,若要删除年龄大于30岁的所有学生文档,使用`deleteMany`方法该如何编写代码?
34.9万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. deleteOnedeleteMany方法的区别
    • deleteOne:该方法用于删除集合中符合指定条件的第一个文档。例如,如果集合中有多个文档满足条件{name: "John"}deleteOne只会删除第一个匹配的文档。
    • deleteMany:此方法会删除集合中所有符合指定条件的文档。继续以上面的例子,如果使用deleteMany并传入条件{name: "John"},则集合中所有名字为“John”的文档都会被删除。
  2. 使用deleteMany方法删除年龄大于30岁的所有学生文档的代码(以Node.js为例)
const { MongoClient } = require('mongodb');

// 连接字符串
const uri = "mongodb://localhost:27017";
const client = new MongoClient(uri);

async function deleteStudents() {
    try {
        await client.connect();
        const database = client.db('test');
        const students = database.collection('students');

        const result = await students.deleteMany({ age: { $gt: 30 } });
        console.log(result.deletedCount + " 个文档被删除");
    } finally {
        await client.close();
    }
}

deleteStudents().catch(console.error);

在Python中:

from pymongo import MongoClient

client = MongoClient('mongodb://localhost:27017')
db = client['test']
students = db['students']

result = students.delete_many({"age": {"$gt": 30}})
print(result.deleted_count, "个文档被删除")