【发布时间】:2021-01-07 20:08:25
【问题描述】:
我想将$in 查询的结果与$nin 查询结合起来,并想要最终结果。那么我们如何使用一个 mongo 查询来做到这一点呢?有什么办法吗?
例如,我在用户集合中有以下文档:
[{
name:"test",
"uid":123
},{
name:"test1",
"uid":124
},{
name:"test2",
"uid":125
},{
name:"test3",
"uid":126
},{
name:"test3",
"uid":127
}]
我想要以下结果:
[{
name:"test2",
"uid":125
},{
name:"test3",
"uid":126
},{
name:"test",
"uid":123
},{
name:"test3",
"uid":127
}]
基本上,我希望前两个位置的uid:125 和uid:126 忽略它们的顺序,然后第三和第四位置的uid:123 和uid: 127 忽略它们的顺序。所以我通过以下两个查询来做到这一点
-
db.getCollection('user').find({uid:{$in:[125,126]}}) -
db.getCollection('user').find({uid:{$nin:[125,126]}})
然后我将结果合并,但我如何在同一个查询中做到这一点?我有这么多文档,这只是一个例子,所以需要结合 $in 和 $nin 查询的结果
我该怎么做?
【问题讨论】:
-
您能否提供更多详细信息、当前结果、预期结果以及您的查询实现和示例文档。
-
@turivishal 更新了问题,请您帮忙解决这个问题
标签: mongodb mongoose mongodb-query