Meteor,MongoDB-db.collection.find()用于OR条件



在MongoDB中,我在一个名为"Jobs"的集合中有以下JSON

{
  "userId": "testUser1",
  "default": "true",
  "someData": "data"
},
{
  "userId": "testUser1",
  "default": "false",
  "someData": "data"
},
{
  "userId": "testUser2",
  "default": "true",
  "someData": "data"
},
{
  "userId": "testUser2",
  "default": "false",
  "someData": "data"
}

在Meteor中,我试图根据两个条件进行选择
-为给定的userId选择文档或者defaulttrue

我在流星中有以下代码:

Jobs.find({$or:[{userid:"testUser1"}, {default:"true"}]});

但它只选择了两个JSON:

{
  "userId": "testUser1",
  "default": "true",
  "someData": "data"
},
{
  "userId": "testUser1",
  "default": "false",
  "someData": "data"
}

并且它没有给出以下JSON作为响应:

{
  "userId": "testUser2",
  "default": "true",
  "someData": "data"
}

我用$where进行了研究,但即使这样也不起作用
如何从MongoDB中检索正确的文档?

尝试不使用$或

Jobs.find({userId: "testUser2", "default": "true"});

需要明确的是,您正在尝试获取您提到的所有三条记录,对吧?如果是这样的话,我认为你的问题是"true"值是字符串,而不是bool,我猜你在搜索bool。试试这个:

数据库。Jobs.find()

{"userId":"testUser1","default":"true","someData":"data"}

{"userId":"testUser1","default":"false","someData":"data"}

{"userId":"testUser2","default":"true","someData":"data"}

{"userId":"testUser2","default":"false","someData":"data"}

数据库。Jobs.find({$或:[{userId:"testUser1"},{default:"true"}]})

{"userId":"testUser1","default":"true","someData":"data"}

{"userId":"testUser1","default":"false","someData":"data"}

{"userId":"testUser2","default":"true","someData":"data"}

最新更新