Thursday, 25 May 2017

dynamo db query using contains operator

my table items are of the form of function addDoc(movie,cb){ var params = { TableName: "Movies", Item: { "year": movie.year, "title": movie.title, "info": movie.info, "genres" : movie.info.genres || [] } }; docClient.put(params, function(err, data) { bar.tick(1) i++; cb(err); }); }

async.eachLimit(allMovies,50,addDoc,function (err) {
    console.log(err)
    console.log("done inserting " + i + " movies");
});

im running this code :

var params = {
    TableName : "Movies",
    //ProjectionExpression:"#yr, title, genres, info.actors[0]",
    KeyConditionExpression: "#yr = :yyyy and contains(genres, :g1)",
    ExpressionAttributeNames:{
        "#yr": "year"
    },
    ExpressionAttributeValues: {
        ":yyyy":1992,
        ":g1" : "Drama"
    },
    //Select : "COUNT"
};
var start = Date.now()
docClient.query(params, function(err, data) {
    if (err) {
        console.error("Unable to query. Error:", JSON.stringify(err, null, 2));
    } else {
        console.log("time elapsed :",Date.now()-start);
        console.log("Query succeeded.");

        console.log(data)

    }
});

and i'm getting this error "Invalid operator used in KeyConditionExpression: contains"

any idea?



via Amir Gur

No comments:

Post a Comment