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"
}
]
しかし、私は、例えばを見つけるために、効率的なクエリを実行することはできませんので、私は私が間違って挿入をやっていると思いますアサーションエラー、私の目標です。私はアサーションエラーやfnameフィールドの入力などを探していきたいと思っています。助けてもらえますか?おかげ
EDIT:
回答のおかげで、多分私は明らかにされていません。私は各フォームフィールドを照会する必要があります、私は各フィールドはオブジェクトでなければならないと思いますか?これは関数全体です:
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);
};
}
}
})
このように、すべてのフィールドは1つのオブジェクトです。キー "name"とその値を削除したい場合は、すべてのフィールドから削除します。では、よりよい解決策は何ですか?このようなものが必要ですか?
var collection = db.collection('http_methods');
collection.insert({
"fields": {
"fname": [stackErrors]
},
"fields": {
"surname": [stackErrors]
},
以下のコードを参照してください。MongoDBを使用している場合は? – mabako
@makaboこのクエリは何も返しません: 'db.http_methods.find({" fields.fname ":" name "});' – FuManchu
@makaboよく、この1つの 'db.http_methods.find({" fields.fname.name ":" AssertionError "})。pretty();'はfnameのクエリのパラメータを返します。 – FuManchu