Good day Monks,
i'm trying to execute a simple insert into mongodb from dancer2, but i failwhen the insert statement call a stored function to determine the "_id" of the new document. my goal is to have as document is a simple unique auto incremental counter as documents ID.
First i save the function using mongo sheel,
> db.system.js.save({_id:"getNextSequence", value:function(name){ var +ret = db.counters.findAndModify({query: { _id: name },update: { $inc: + { seq: 1 }},new: true});return ret.seq; }});
then from Dancer2 post i try to insert the new documents:
post "/commNew" => require_login sub { my $userh = logged_in_user; my $username=$userh->{username}; my $adm=lc(config->{app}{commAdmin}); if($username =~ m/$adm/){ info ("User is $username for comm 2b" ); my $res=$comms->insert_one({"_id"=> getNextSequence("comm-id") +,"year" => config->{app}{year}}); my $lastid = $res->inserted_id; my @kuy = body_parameters->keys; info ("Insert int Mongo: ".$lastid); foreach my $oto ( @kuy ) { info ("key name value: " .$oto ." value: ".body_parameters +->get($oto)); $comms->update_one( {"_id" => $lastid},{'$set' => {$oto => + body_parameters->get($oto)}}); } info ("User is $username for comm 2z" ); }else{ return 404; } };
Instead of evaluate the stored function "getNextSequence", it try to add the document like { "_id" : "getNextSequence(\"comm-id\")",.....}
Where i'm wrong ?
thanks in advance
In reply to MongoDB Stored procedure from Dancer2 by actarus2003
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |