Dojo DataStore查询 - 使用多个参数进行搜索

时间:2015-05-18 05:09:57

标签: dojo

我正在尝试查询dojo数据存储区对象。商店有多个对象,每个对象都是一个名为OBJECTID的键,具有唯一值。有没有办法像这样查询商店:

dataStoreObjet.query({OBJECTID:6990,OBJECTID:34277,OBJECTID:9501});

现在它只返回最后一个对象。我敢肯定我错过了一些简单的东西,但这让我感到疯狂。我不想为每个值运行查询,然后根据所有这些查询创建一组新值。

由于

1 个答案:

答案 0 :(得分:0)

对象 {OBJECTID:6990,OBJECTID:34277,OBJECTID:9501} 只包含最后一个值。

这是因为javascript对象是属性及其值的映射。 {OBJECTID:6990,OBJECTID:34277,OBJECTID:9501}定义与

相同
var obj = { OBJECTID : 6990 };
obj.OBJECTID = 34277;
obj.OBJECTID = 9501;

从上面可以看出, obj 对象包含最后一个值,即 9501 。实际上您对dataStoreObjet的查询 是

dataStoreObjet.query({OBJECTID : 9501} );

现在解决您的问题。

您需要将函数作为查询参数传递,该参数将比较值并返回true或false,以使对象成为查询结果的一部分。

dataStoreObjet.query( function(object){
        return (object.OBJECTID == 6990) || (object.OBJECTID == 6990) || (object.OBJECTID == 6990)  ;
}) // Pass a function to do more complex querying