mirror of
https://github.com/node-red/node-red-nodes.git
synced 2025-03-01 10:37:43 +00:00
Merge d4af78f001adf97491e136c8a13613954e5ff416 into 14f68063c581b5375e537f1a4535b0e3ae902e51
This commit is contained in:
commit
3d73542f6e
@ -105,74 +105,16 @@ module.exports = function(RED) {
|
|||||||
delete msg._topic;
|
delete msg._topic;
|
||||||
delete msg.collection;
|
delete msg.collection;
|
||||||
if (node.operation === "store") {
|
if (node.operation === "store") {
|
||||||
if (node.payonly) {
|
storeInDb(node, msg, coll);
|
||||||
if (typeof msg.payload !== "object") {
|
|
||||||
msg.payload = {"payload": msg.payload};
|
|
||||||
}
|
|
||||||
if (msg.hasOwnProperty("_id") && !msg.payload.hasOwnProperty("_id")) {
|
|
||||||
msg.payload._id = msg._id;
|
|
||||||
}
|
|
||||||
coll.save(msg.payload,function(err, item) {
|
|
||||||
if (err) {
|
|
||||||
node.error(err,msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
coll.save(msg,function(err, item) {
|
|
||||||
if (err) {
|
|
||||||
node.error(err,msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (node.operation === "insert") {
|
else if (node.operation === "insert") {
|
||||||
if (node.payonly) {
|
insertInDb(node, msg, coll);
|
||||||
if (typeof msg.payload !== "object") {
|
|
||||||
msg.payload = {"payload": msg.payload};
|
|
||||||
}
|
|
||||||
if (msg.hasOwnProperty("_id") && !msg.payload.hasOwnProperty("_id")) {
|
|
||||||
msg.payload._id = msg._id;
|
|
||||||
}
|
|
||||||
coll.insert(msg.payload, function(err, item) {
|
|
||||||
if (err) {
|
|
||||||
node.error(err,msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
coll.insert(msg, function(err,item) {
|
|
||||||
if (err) {
|
|
||||||
node.error(err,msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else if (node.operation === "update") {
|
else if (node.operation === "update") {
|
||||||
if (typeof msg.payload !== "object") {
|
updateInDb(node, msg, coll);
|
||||||
msg.payload = {"payload": msg.payload};
|
|
||||||
}
|
|
||||||
var query = msg.query || {};
|
|
||||||
var payload = msg.payload || {};
|
|
||||||
var options = {
|
|
||||||
upsert: node.upsert,
|
|
||||||
multi: node.multi
|
|
||||||
};
|
|
||||||
if (ObjectID.isValid(msg.query._id)) {
|
|
||||||
msg.query._id = new ObjectID(msg.query._id);
|
|
||||||
}
|
|
||||||
coll.update(query, payload, options, function(err, item) {
|
|
||||||
if (err) {
|
|
||||||
node.error(err,msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else if (node.operation === "delete") {
|
else if (node.operation === "delete") {
|
||||||
coll.remove(msg.payload, function(err, items) {
|
deleteInDb(node, msg, coll);
|
||||||
if (err) {
|
|
||||||
node.error(err,msg);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -195,6 +137,9 @@ module.exports = function(RED) {
|
|||||||
RED.nodes.createNode(this,n);
|
RED.nodes.createNode(this,n);
|
||||||
this.collection = n.collection;
|
this.collection = n.collection;
|
||||||
this.mongodb = n.mongodb;
|
this.mongodb = n.mongodb;
|
||||||
|
this.payonly = n.payonly || false;
|
||||||
|
this.upsert = n.upsert || false;
|
||||||
|
this.multi = n.multi || false;
|
||||||
this.operation = n.operation || "find";
|
this.operation = n.operation || "find";
|
||||||
this.mongoConfig = RED.nodes.getNode(this.mongodb);
|
this.mongoConfig = RED.nodes.getNode(this.mongodb);
|
||||||
this.status({fill:"grey",shape:"ring",text:RED._("mongodb.status.connecting")});
|
this.status({fill:"grey",shape:"ring",text:RED._("mongodb.status.connecting")});
|
||||||
@ -292,6 +237,18 @@ module.exports = function(RED) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
else if (node.operation === "store") {
|
||||||
|
storeInDb(node, msg, coll);
|
||||||
|
}
|
||||||
|
else if (node.operation === "insert") {
|
||||||
|
insertInDb(node, msg, coll);
|
||||||
|
}
|
||||||
|
else if (node.operation === "update") {
|
||||||
|
updateInDb(node, msg, coll);
|
||||||
|
}
|
||||||
|
else if (node.operation === "delete") {
|
||||||
|
deleteInDb(node, msg, coll);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -306,5 +263,103 @@ module.exports = function(RED) {
|
|||||||
if (node.client) { node.client.close(); }
|
if (node.client) { node.client.close(); }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
RED.nodes.registerType("mongodb in",MongoInNode);
|
RED.nodes.registerType("mongodb in", MongoInNode);
|
||||||
|
|
||||||
|
function insertInDb(node, msg, coll) {
|
||||||
|
if (node.payonly) {
|
||||||
|
if (typeof msg.payload !== "object") {
|
||||||
|
msg.payload = { "payload": msg.payload };
|
||||||
|
}
|
||||||
|
if (msg.hasOwnProperty("_id") && !msg.payload.hasOwnProperty("_id")) {
|
||||||
|
msg.payload._id = msg._id;
|
||||||
|
}
|
||||||
|
coll.insert(msg.payload, function (err, item) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err, msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.payload = item;
|
||||||
|
node.send(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
coll.insert(msg, function (err, item) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err, msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.payload = item;
|
||||||
|
node.send(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateInDb(node, msg, coll) {
|
||||||
|
if (typeof msg.payload !== "object") {
|
||||||
|
msg.payload = { "payload": msg.payload };
|
||||||
|
}
|
||||||
|
var query = msg.query || {};
|
||||||
|
var payload = msg.payload || {};
|
||||||
|
var options = {
|
||||||
|
upsert: node.upsert,
|
||||||
|
multi: node.multi
|
||||||
|
};
|
||||||
|
if (ObjectID.isValid(msg.query._id)) {
|
||||||
|
msg.query._id = new ObjectID(msg.query._id);
|
||||||
|
}
|
||||||
|
coll.update(query, payload, options, function (err, item) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err, msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.payload = item;
|
||||||
|
node.send(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function deleteInDb(node, msg, coll) {
|
||||||
|
coll.remove(msg.payload, function (err, items) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err, msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.payload = items;
|
||||||
|
node.send(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function storeInDb(node, msg, coll) {
|
||||||
|
if (node.payonly) {
|
||||||
|
if (typeof msg.payload !== "object") {
|
||||||
|
msg.payload = { "payload": msg.payload };
|
||||||
|
}
|
||||||
|
if (msg.hasOwnProperty("_id") && !msg.payload.hasOwnProperty("_id")) {
|
||||||
|
msg.payload._id = msg._id;
|
||||||
|
}
|
||||||
|
coll.save(msg.payload, function (err, item) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err, msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.payload = item;
|
||||||
|
node.send(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
coll.save(msg, function (err, item) {
|
||||||
|
if (err) {
|
||||||
|
node.error(err, msg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
msg.payload = item;
|
||||||
|
node.send(msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user