MongoDB实践
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"}})