在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
选择文档或者default
是true
我在流星中有以下代码:
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"}