语法
基本格式
等值匹配 { field : value }
普通对象/数组对象嵌套字段 { class.attribute : value }
1
2
| { "对象名.属性名": value }
{ "数组名.对象名.属性名": value }
|
比较运算 { field: { $xx : val } }
1
2
3
| { field: { $gt: 0.99 } } // 大于
{ field: { $lt: 100 } } // 小于
{ field: { $in: [1, 2] } } // 在数组中
|
| 运算符 | 含义 | 示例 |
|---|
$eq | 等于 | { field: { $eq: value } } |
$ne | 不等于 | { field: { $ne: value } } |
$gt | 大于 | { field: { $gt: 0.99 } } |
$gte | 大于等于 | { field: { $gte: 100 } } |
$lt | 小于 | { field: { $lt: 100 } } |
$lte | 小于等于 | { field: { $lte: 50 } } |
$in | 在数组中 | { field: { $in: [1, 2, 3] } } |
$nin | 不在数组中 | { field: { $nin: [1, 2] } } |
插入命令
1
2
3
4
| db.shop.updateOne(
{ _id: ObjectId("61d689b3ff81eb001f3ba9db") },
{ $set: { vender_id: "" } }
)
|
排序命令
1
2
| # 获取最新的
db.sdk_ss_goods.find({ shop_id: "632d4d68fef90d00191c8a65" }).sort({ _id: -1 }).limit(1)
|
示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| {
"_id": {
"$oid": "6912deab03b51ebcf2efe7d7"
},
"one_id": "b35fc665-409a-4501-a3bc-fa8a5b27311a",
"req": {
"messageid": "b35fc665-409a-4501-a3bc-fa8a5b27311a_7560982569408267785",
"evaluationdatalist": [
{
"datapool": "售前Agent_isv评估_20251015_20251021",
"dataid": "b35fc665-409a-4501-a3bc-fa8a5b27311a",
"data": {
"backgroundinfo": "# 系统信息\n- 当前时间:2025/10/19 22:46:06\n\n# 店铺信息\n- 店铺名称:悍石官方旗舰店\n- 是否抖音旗舰店:否\n\n# 用户信息\n- 用户在该店铺的会员状态:不是会员\n\n# 进线商品信息\n## 商品信息\n商品ID:0\n\n- 商品基础信息:商品名称:HUMBLE STONE悍石 立体剪裁 户外三防 软壳冲锋外套24188 商品属性:n\n"
},
"ext": {
"msg_id": "1846421919634508",
"conversation_id": "7562944075855316262",
"date": "20251019",
"log_id": "02176088516297200000000000000000000ffff0ad29e2219ce43"
}
}
],
"datacount": 1,
"taskid": "b35fc665-409a-4501-a3bc-fa8a5b27311a",
"timestamp": {
"$numberLong": "1762862863954"
}
}
}
|
筛选字段
根级字段精确匹配
1
2
3
4
5
6
7
8
9
10
11
12
| // 按 one_id 查询
db.collection.find({
"one_id": "b35fc665-409a-4501-a3bc-fa8a5b27311a"
})
// 按 req.timestamp 区间查询(NumberLong 值)
db.collection.find({
"req.timestamp": {
"$gte": NumberLong("1762862863954"),
"$lte": NumberLong("1762862863954")
}
})
|
嵌套数组内字段(evaluationdatalist)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| // 数组内任意元素满足即可
db.collection.find({
"req.evaluationdatalist.ext.conversation_id": "7562944075855316262"
})
// 只想让同一个元素同时满足多个条件 $elemMatch
同时限定 datapool + dataid
db.collection.find({
"req.evaluationdatalist": {
"$elemMatch": {
"datapool": "售前Agent_isv评估_20251015_20251021",
"dataid": "b35fc665-409a-4501-a3bc-fa8a5b27311a"
}
}
})
|
嵌套对象字段(ext、data、backgroundinfo)
1
2
3
4
5
6
7
8
9
| // 按 ext.date 查询
db.collection.find({
"req.evaluationdatalist.ext.date": "20251019"
})
// 模糊匹配 backgroundinfo 中的「店铺名称」
db.collection.find({
"req.evaluationdatalist.data.backgroundinfo": /悍石官方旗舰店/
})
|
查询字段
只返回根级字段
1
2
3
4
5
6
7
8
9
| db.collection.find(
{ "one_id": "b35fc665-409a-4501-a3bc-fa8a5b27311a" }, // 过滤条件
{ // 投影字段
"_id": 1,
"one_id": 1,
"req.taskid": 1,
"req.timestamp": 1
}
)
|
只要数组里「某个嵌套字段」
1
2
3
4
5
6
7
8
9
| db.collection.find(
{ "req.evaluationdatalist.datapool": "售前Agent_isv评估_20251015_20251021" },// 过滤条件
{ // 投影字段
"_id": 0,
"one_id": 1,
"req.evaluationdatalist.datapool": 1,
"req.evaluationdatalist.ext.date": 1
}
)
|