MongoDB多值查询方法咨询:新手从SQL转JSON/NoSQL的等价实现
等价的MongoDB查询实现方案
嘿,作为MongoDB新手,能把SQL逻辑对应过来已经很棒啦!我来帮你把这条查询转换成MongoDB的等价写法,其实有两种常用方式,都很容易理解:
方式一:直接对应SQL的逻辑结构
这种写法完全贴合你原SQL里的AND + OR组合逻辑,新手一看就能对应上:
db.account.find({ status: "active", $or: [ { create_by: "USE001" }, { create_by: "USE004" }, { create_by: "USE035" } ] })
小提示:MongoDB默认会把多个顶级查询条件视为
$and关系,所以这里可以省略显式的$and包裹,写起来更清爽。
方式二:用$in简化多值匹配(更推荐)
当你需要匹配某个字段的多个可选值时,MongoDB的$in操作符就是专门干这个的!它能替代一堆重复的$or判断,让代码更简洁易读,这也是业内的最佳实践:
db.account.find({ status: "active", create_by: { $in: ["USE001", "USE004", "USE035"] } })
针对你的测试数据的查询结果
执行上面任意一种查询,都会返回你测试数据中唯一符合条件的文档:
{ "id":"ACC0001", "create_day":"2020-04-20 16:56:11", "create_by":"USE001", "brief_name":"AAAAA", "status":"active" }
内容的提问来源于stack exchange,提问作者Naoa Lee
相关产品推荐
相关产品推荐

