Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb Meteor查找使用$in和ID数组_Mongodb_Meteor - Fatal编程技术网

Mongodb Meteor查找使用$in和ID数组

Mongodb Meteor查找使用$in和ID数组,mongodb,meteor,Mongodb,Meteor,我正在尝试使用$in和一个ID数组取回集合 我有以下功能,但它不起作用 var blockByLocation = Blocks.find({location: location}); var producersArray = []; blockByLocation.forEach(function (block) { producersArray.push(block.producerId); }); console.log(producers

我正在尝试使用$in和一个ID数组取回集合

我有以下功能,但它不起作用

var blockByLocation = Blocks.find({location: location});
    var producersArray = [];
    blockByLocation.forEach(function (block) {
        producersArray.push(block.producerId);
    });

    console.log(producersArray);

producersList = Producers.find({$and:[{organizationId: user.organizationId}, {_id:{$in: producersArray}}]}).map(function (obj) {
            return {text: obj.name, id: obj._id};
});

您可以通过以下方式重写代码:

var producerIds = Blocks.find({
    "location": location
}).map(function (block) { return block.producerId; });

var producersList = Producers.find({
    "organizationId": user.organizationId,
    "_id": { "$in": producerIds }
}).map(function (obj) {
    return {
        "text": obj.name,
        "id": obj._id
    };
});

这里有一个基于奇德拉姆斯的更清晰的答案。工作代码示例

var colleagueIds = Posts.find({ type:"colleagues" }).map(function (person) { return person.title; });
        //console.log(colleagueIds);

        return Meteor.users.find({
            "_id": { "$in": colleagueIds }
        });

注意,map函数返回我的post对象的标题光标。如果你是一名优秀的Wordpress开发人员,这将是有意义的。但是,您可能希望返回对象的_id。

这只是对象游标。forEach(callback,[thisArg])是一个对象,它将成为这个内部回调的值。格式问题,现在整个代码都有了“text:obj.name,应该是”text:obj.name,