Note that there are some explanatory texts on larger screens.

plurals
  1. POInserting data to MongoDB - no error, no insert
    primarykey
    data
    text
    <p>I'm currently trying to make a register form using mongoDB and nodeJS - I've created new database and collection - I want to store: username, password, email and insert_time in my database.</p> <p>I've added unique indexes to username/email and checked if it works - and I can not add a duplicated entry using mongo's console or rockmongo (php mongodb manager) - so it works fine.</p> <p>However - when the piece of code that is supposed to register a new account is being executed and makes an insert with the data that is already in database - it returns an object that contains all the data that was supposed to be added with a new, unique id. The point is - it should return an error that would say that entries can not be duplicated and insert failed - instead it returns the data back and gives it a new id. Data that already resides in database remains untouched - even the ID stays the same - it's not rewritten with the new one returned by script's insert.</p> <p>So, the question is... what am I doing wrong? Or maybe everything is fine and database's insert should return data even if it's failed?...</p> <p>I even tried defining indexes before executing indexes. I tried inserting the data using mongoDB's default functions and <a href="https://github.com/gett/mongojs">mongoJS</a> functions - the result is the same in both cases.</p> <p>The code I'm trying to execute (for <a href="https://github.com/gett/mongojs">mongoJS</a>):</p> <pre><code>var dbconn = require("mongojs").connect('127.0.0.1:27017/db', ['users']); var register = function(everyone, params, callback) { // TODO: validation dbconn.users.ensureIndex({username:1},{unique:true}); dbconn.users.ensureIndex({email:1},{unique:true}); dbconn.users.save( { username: params.username, password: params.password, email: params.email, insert_time: Date.now() }, function(error, saved) { if(error || !saved) { callback(false); } else { console.log(error); console.log(saved); callback(true); } }); } </code></pre> <p>For both cases - inserting new data and inserting duplicated data that doesn't modify database in any way - ERROR is null and SAVED is just a copy of data that is supposed to be inserted. Is there any way to check if insert was made or not - or do I have to check whether the data already exists in database or not manually before/after making an insert?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload