从meteor mongodb中找到一个javascript数组 [英] find in a javascript array from meteor mongodb

查看:57
本文介绍了从meteor mongodb中找到一个javascript数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是有效的

Template.kanjifinder.kanjicharacters = function () {
    console.log("kanjlist");
    return kanji.find({cardid: {$in:[1,2]}}, {sort: {cardid: 1}});  
};

但有没有办法替换这个硬编码数组 [1,2] 带有javascript数组?

but is there a way to replace this hardcoded array [1,2] with a javascript array?

var str = "123456"
var cardids = str.split("");

if (Meteor.isClient) {
    Template.kanjifinder.kanjicharacters = function () {
        console.log("kanjlist");
        return kanji.find({cardid: {$in: **cardids** }}, {sort: {cardid: 1}});  
    } 
};


推荐答案

您只需在字符串中使用分隔符,你也可以在你的代码中这样做,但问题是2位数字:

You just need to use a separator in your string, you could do it that way in your code too, but the problem is 2 digit numbers:

var str = "1,2,3,4,5,6" //<<--- use a seperator here
var cardids = str.split(","); //<<--

//remove this line if you intend to use strings in your db instead of integers
cardids = _.map(function(card) { return parseInt(card);});

if (Meteor.isClient) {
   Template.kanjifinder.kanjicharacters = function () {
     console.log("kanjlist");
     return kanji.find({cardid: {$in:cardids}}, {sort: {cardid: 1}});  
   };
}

我正在使用下划线将字符串转换为整数,如果你不是已经将它添加到您的流星包中 meteor add underscore

I'm using underscore to convert the strings to integers, if you don't already have it add it to your meteor package with meteor add underscore

这篇关于从meteor mongodb中找到一个javascript数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆