10.MongoDB数组查询和嵌套字段查询
10.1 知识点
查询数组中的元素
插入带数组的文档
# 插入一个新的数据,并且增加一个 lessons 数组字段
db.users.insertOne({
name: "T1",
age: 25,
lessons: [1, 3, 5, 7, 9]
});
db.users.insertOne({
name: "T2",
age: 25,
lessons: [2, 4, 6, 8, 10]
});
查询数组中包含指定值的文档
# 查询 lessons 数组中包含 1 或 4 的文档
# 这里查询的是类似“或”的操作,不是“与”的操作
db.users.find({
lessons: { $in: [1, 4] }
});
查询数组中不包含指定值的文档
# 查询没有 lessons 字段,或者 lessons 数组中不包含 11 或 4 的文档
db.users.find({
lessons: { $nin: [11, 4] }
});
查询数组中符合条件的元素
# 查询 lessons 数组中存在大于 2 的元素的文档
db.users.find({
lessons: { $elemMatch: { $gt: 2 } }
});
查询嵌套字段
插入带嵌套字段的文档
# 插入两条带 bag 对象的数据
db.users.insertOne({
name: "TT1",
age: 11,
bag: {
index: 1
}
});
db.users.insertOne({
name: "TT2",
age: 22,
bag: {
index: 2
}
});
查询嵌套字段的确切值
# 查询 bag.index 等于 1 的文档
db.users.find({ "bag.index": 1 });
查询嵌套字段的范围
# 查询 bag.index 大于 0 的文档
db.users.find({ "bag.index": { $gt: 0 } });
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com