actarus2003 has asked for the wisdom of the Perl Monks concerning the following question:
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: MongoDB Stored procedure from Dancer2
by Corion (Patriarch) on Mar 28, 2017 at 08:25 UTC | |
by actarus2003 (Novice) on Mar 28, 2017 at 15:47 UTC | |
by poj (Abbot) on Mar 28, 2017 at 17:51 UTC | |
by actarus2003 (Novice) on Mar 29, 2017 at 10:21 UTC | |
by actarus2003 (Novice) on Nov 06, 2017 at 16:39 UTC | |
by Corion (Patriarch) on Mar 28, 2017 at 16:16 UTC | |
|
Re: MongoDB Stored procedure from Dancer2
by poj (Abbot) on Mar 28, 2017 at 08:42 UTC |