我通过Node.js在mongoDB中插入输入(错误或正确插入)这些输入存储在变量中。这就是我所拥有的
collection.insert({
"fields":
{
"fname": [stackErrors]
},
}), (etc)
find()查询的输出是:
{
"_id" : ObjectId("592bfb979b047027983a7283"),
"fields" : {
"fname" : [
{
"message" : "expected '' to be NaN",
"showDiff" : false,
"actual" : "",
"expected" : null,
"name" : "AssertionError"
}
]
但我猜我插错了,因为我无法进行有效的查询来查找例如断言错误,这是我的目标。我想用propper查询找到断言错误或fname字段的输入等。任何人都可以帮忙吗?感谢
编辑:
感谢您的回复,但也许我还不清楚。我需要查询每个表单字段,我想每个字段必须是一个对象?这是整个功能:
function saveToMongo(stackErrors) {
//CONNECTION
MongoClient.connect(url, function (err, db) {
assert.equal(null, err);
console.log("Connected correctly to server");
insertDocuments(db, function () {
db.close();
});
});
//INSERT
var insertDocuments = function (db, callback) {
var collection = db.collection('http_methods');
collection.insert({
"fields": {
"fname": [stackErrors],
"surname": [stackErrors],
},
}),
function (err, result) {
assert.equal(err, null);
callback(result);
};
}
}
})
像这样,所有字段都是一个对象。如果我想删除键“name”及其值,则会将其从所有字段中删除。那么,什么是更好的解决方案?我需要这样的东西吗?
var collection = db.collection('http_methods');
collection.insert({
"fields": {
"fname": [stackErrors]
},
"fields": {
"surname": [stackErrors]
},
答案 0 :(得分:0)
首先应使用以下命令安装assert包。
npm install assert
插入数据的代码如下:
var assert=require("assert");
var mongo=require("mongodb").MongoClient;
var url=//the url for accessing collection goes here.
mongo.connect(url,function(err,db){
assert.equal(null,err)
db.collection("<collection-name>").insert({"fields":{"fname":{$push:"stackErrors"}}});
});
答案 1 :(得分:0)
如果仅使用mongodb,请参阅以下代码
var db = require('./../db.js');
var ObjectId = db.getObjectID();
module.exports = {
addUser: function (data, cb) {
var data = {"fields": {"fname": [stackErrors]}};
var collection = db.getDb().collection('users');
collection.insertOne(data, function (err, result) {
if (err) {
console.log(err);
} else {
cb(err, result);
}
});
});
},