如何使用MongoDB聚合根据$and/$or进行过滤?

如何使用MongoDB聚合根据$and/$or进行过滤?,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我不太理解在MongoDB中使用$或或$和运算符 假设我有以下数据: { "_id" : "0211dd50-6283-11e6-be4b-01259186ebdc", "customer_id" : 75832, "prod_display_id" : "8c890b9c-7824-11e5-9cf1-24519096eb0c", "record_ids" : [ ObjectId("1377ki5f8782b634fbf92b07b"),

我不太理解在MongoDB中使用
$或
$和
运算符

假设我有以下数据:

{
    "_id" : "0211dd50-6283-11e6-be4b-01259186ebdc",
    "customer_id" : 75832,
    "prod_display_id" : "8c890b9c-7824-11e5-9cf1-24519096eb0c",
    "record_ids" : [
        ObjectId("1377ki5f8782b634fbf92b07b"),
        ObjectId("6283gf5f922b634fbf32b07a"),
        ObjectId("9913zd5f234b634fbf22b07c")
    ],
    "create_dt" : ISODate("2014-01-12T13:31:42.740Z")
}, 
{
    "_id" : "3454ke24-9372-11e6-be4b-01259186ebdc",
    "customer_id" : 75832,
    "prod_display_id" : "2d723b5c-8823-77y5-9cf1-00259096eb0c",
    "record_ids" : [
        ObjectId("1377ki5f8782b634fbf92b07b")
    ],
    "create_dt" : ISODate("2014-03-12T15:45:01.650Z")
}, 
{
    "_id" : "0211dd50-6283-23t6-it84-63957834kjhdd",
    "customer_id" : 11486,
    "prod_display_id" : "8c890b9c-7824-11e5-9cf1-00259096eb0c",
    "record_ids" : [
        ObjectId("9870kr5f9234b745fbf23g12b")
    ],
    "create_dt" : ISODate("2015-02-23T16:23:53.112Z")
}
....
现在,我想找到所有具有特定
记录id的用户。假设我想要所有拥有
ObjectId(..)
ObjectId(..)
的用户(即一个或另一个)

我认为正确的聚合运算符是:

> db.collection.aggregate([{ $project: { content_id : {$or : [ObjectId("...."), ObjectId("...")]}}}])
类似地,应该使用AND操作

> db.collection.aggregate([{ $project: { content_id : {$and : [ObjectId("...."), ObjectId("...")]}}}])

但是我错了!如果我运行上述操作,则无论某个ObjectId()是否存在,两个
$project
操作都会输出所有文件。我做错了什么

运行这样简单的查询不需要任何聚合

    db.collection.find({$or : [{"content_id":ObjectId("....")},{"content_id": ObjectId("...")} ] } )

OR

    db.collection.find({"content_id":{ "$in":[ObjectId("...."),ObjectId("....")] }  } )

首先,您不需要为此进行聚合;你不需要接线员

要查找在“记录ID”中查找具有特定
ObjectId
的所有“用户”,只需使用运算符

db.collection.find({“record_id”){“$all”:运算符

db.collection.find({“record_id”:{“$in”:})

首先,您不需要为此进行聚合。
.find()
就足够了。我认为这甚至不起作用。@user3100115如何使用
.find()