Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re^2: MongoDB replacing an array

by neilwatson (Priest)
on Aug 26, 2012 at 17:43 UTC ( [id://989855]=note: print w/replies, xml ) Need Help??


in reply to Re: MongoDB replacing an array
in thread MongoDB replacing an array

Timestamp is name of an array in a JSON inside a MongoDB database. I want to replace that entire array with a new one. My backup plan is to empty the array in MongoDB and then insert a new one.

Neil Watson
watson-wilson.ca

Replies are listed 'Best First'.
Re^3: MongoDB replacing an array
by Mr. Muskrat (Canon) on Aug 26, 2012 at 18:07 UTC
    And you're sure that @new is not empty at the point of the insert? Have you tried printing out its contents to be sure?

        Okay, let's look at what you have.

        The MongoDB::Collection docs show that update takes three hash references (\%criteria, \%object and \%options).

        $col->update( { "host" => $host }, { '$set' => { "timestamp" => [ @new ] } }, { 'multiple' => 1, 'safe' => 1 } ) || die "$!";

        Your criteria is simply host = $host. Your object should set timestamp to the contents of @new. Your options include multiple which tells it to update all matching records and safe which causes it to croak on errors (so the || die you have is superfluous).

        Are you getting any errors or do the records just end up empty?

        Based on the docs, it looks right. So what's missing? We don't know. Without seeing more of the code, I don't think anyone will be able to help you.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://989855]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2024-04-18 04:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found