MongoDBの高度なクエリを書く方法
MongoDB では、高度な照会文は、集約パイプライン演算子と照会演算子を使用して複雑な照会ロジックを実装できます。以下に高度な照会文の一般的な例を示します。
- 集約パイプライン演算子を使用してデータを集約して変換する
db.collection.aggregate([
{ $match: { field: value } }, // 过滤文档
{ $group: { _id: "$field", count: { $sum: 1 } } }, // 分组统计
{ $sort: { count: -1 } }, // 排序
{ $limit: 10 } // 返回前10个结果
])
- 検索演算子を用いた高度な検索
db.collection.find({
$and: [
{ field1: value1 }, // 过滤条件1
{ field2: { $gt: value2 } }, // 过滤条件2(大于)
{ field3: { $in: [value3, value4] } } // 过滤条件3(值在指定范围内)
]
})
- 正規表現を利用したあいまい検索
db.collection.find({ field: { $regex: "pattern" } })
- インデックスを活用してパフォーマンスを最適化する
db.collection.createIndex({ field: 1 }) // 创建升序索引
db.collection.createIndex({ field: -1 }) // 创建降序索引
- 全文検索はテキストインデックスを使用します。
db.collection.createIndex({ field: "text" }) // 创建文本索引
db.collection.find({ $text: { $search: "keyword" } }) // 执行全文搜索
これらは一般的な詳細検索の一例に過ぎません。MongoDBはより多くの演算子と機能を提供しており、特定のニーズに合わせて詳細に調査して探る出すことができます。