【发布时间】:2021-05-07 01:17:46
【问题描述】:
我有如下文件
[
{
"_id" : ObjectId("601992e354787877866"),
"status" : 1,
"user_id" : 2,
},
{
"_id" : ObjectId("601992e354787877866"),
"status" : 2,
"user_id" : 2,
},
{
"_id" : ObjectId("601992e354787877866"),
"status" : 2,
"user_id" : 3,
},
{
"_id" : ObjectId("601992e354787877866"),
"status" : 3,
"user_id" : 4,
}
]
status 列的值可以是 1、2 或 3。只有当 status 列的值为 2 并且状态不是 2 的文档将按原样出现时,我才想匹配 user_id。
我尝试过匹配查询
db.collection.find({"status" : 1});
但它只会匹配状态
现在如果我的用户 id 是 2 那么输出应该是 b
[
{
"_id" : ObjectId("601992e354787877866"),
"status" : 1,
"user_id" : 2,
},
{
"_id" : ObjectId("601992e354787877866"),
"status" : 2,
"user_id" : 2,
},
{
"_id" : ObjectId("601992e354787877866"),
"status" : 3,
"user_id" : 4,
}
]
在这里您可以看到状态为 2 且 user_id 不等于 2 的文档不在预期的输出中,但状态不是 2 的文档将出现结果
【问题讨论】:
-
你想要的是this吗?还发布一个输入示例和预期输出以更好地理解。
-
用更多细节更新了问题。请检查
标签: mongodb mongoose mongodb-query mongoose-schema