MongoDB实践

发布于:2025-02-10 ⋅ 阅读:(30) ⋅ 点赞:(0)

MongoDB 是什么?— MongoDB 手册 v8.0

现在有一个名为city的集合,里面的结构如下图

一、增删改查操作

1.查询find
db.getCollection("city").find({})

db.city.find({
   
})

db.city.find({
    city:"广州"
});

db.city.find({
    city_id:17,
    city="shangh"
})
2.插入insert
db.city.insertOne({
    "city_id":8 , "city": "重庆"
})

db.getCollection("city").insertMany([
    { "id": 1, "city": "北京" },
    { "id": 2, "city": "上海" },
    { "id": 3, "city": "杭州" }
])

db.city.insertMany([
{
    city_id: 16,
    city: "宁波",
    population: 1999,
    is_deleted: 0
},
{
    city_id: 15,
    city: "西安",
    population: 1880,
    is_deleted: 0
},
])
3.更新update
//更新一条
db.city.update(
    { id: 4 },
    { $set: { city: "南京" } }
)
//更新多条
db.city.updateMany({},{$set:{
    " is_deleted":2
}});
//更新多条
const cities = ["长沙", "重庆", "武汉"];
const city_ids = ["17", "18", "19"];
const updates = cities.map((city, index) => ({
    updateOne: {
        filter: { city: city },
        update: { $set: { city_id: city_ids[index] } }
    }
}));
db.city.bulkWrite(updates, { ordered: false });  // 使用 bulkWrite 执行所有更新操作
4.删除remove
db.getCollection("city").remove(
    { id: 5 }
)

db.city.remove({city:"西安"})
二、操作符
1.比较查询
//eq
db.city.find({city:{$eq:"上海"}})

//gt
db.city.find({city_id:{$gt:3}})

//lt
db.city.find({ city_id: { $lt: 3 } })

//ne
db.city.find({ city_id: { $ne: 3 } })

//in
db.city.find({city:{$in:["上海","北京"]}})
db.city.updateMany(
    { city: { $in: ["上海", "北京"] } },
    { $set: { population: 3006 } }
)
2.逻辑查询
//and
//查询city不为上海且city_id在[2,3]里的
db.city.find(
{
    $and:[
      {  city:{$ne:"上海"}},
      {  city_id:{$in:[2,3]}}
    ]
})

//not
db.city.find({ city: { $not:{$in: ["上海", "北京"] }} })

//nor
db.city.find(
{
    $nor:[
      {  city:{$ne:"苏州"}},
      {  city_id:{$in:[2,9]}}
    ]
}
)

//or
db.city.find(
{
    $or:[
      {  city:{$ne:"苏州"}},
      {  city_id:{$in:[2,9]}}
    ]
}
)
3.元素查询
//exists
db.city.find({population:{$exists:false}})
db.city.find({population:{$exists:true}})

//type
db.city.find({city_id:{$type:"string"}})


网站公告

今日签到

点亮在社区的每一天
去签到