2016-04-06 15 views
0

Şu ana kadar kullandığım kod, belirli bir anahtarı bularak veritabanını sorgulamama izin veriyor: Belgeler, ancak ben bir argüman fonksiyonuna geçmek istiyorum, böylece kullanıcının araması anahtar: değer sorgusunda 'değer' olur. Şu anda, kullanıcının argümanını istediğim yerde "Kozmik Siyah" var.Kullanıcı bir arama kutusuna bir ad girerek, sonra o arama ile eşleşen tüm belgeleri bulmaya çalışarak mongoDB'yi sorgulamaya çalışıyorum

var findMaterials = function(db, callback) { 
    var cursor = db.collection('materials').find({"material_name": "Cosmic Black"}); 
    cursor.each(function(err, doc) { 
     assert.equal(err, null); 
     if (doc !== null) { 
      console.log(doc); 
     } else { 
      callback(); 
     } 
    }); 
}; 

Sadece orada tartışmayı nasıl bilmiyorum, ya da geçerli kod kurulumu ile bile mümkünse. Herhangi bir düşünce çok takdir edilecektir.

+0

Komut dosyanızı nasıl çalıştırıyorsunuz? Komut satırı üzerinden numaralı düğümü yazıyor musunuz, yoksa belirli bir URL son noktasını vurduğunuzda çalışıyor mu? – user2263572

+2

Olası bir kopyası [Bir mongo veritabanını sorgulamak için arama çubuğuna sahip bir web sitesi nasıl oluşturulur?] (Http://stackoverflow.com/questions/31176349/how-to-create-a-website-with-a-searchbar-to -query-a-moğol-veritabanı) –

+0

Şu anda geliştirme aşamasında, bu yüzden sadece komut satırından geçiyordu, ama sonuçta belirli bir son nokta olacak – MattP

cevap

0
var findMaterials = function(db, value, callback) { 
    var cursor = db.collection('materials').find({"material_name": value}); 
    cursor.each(function(err, doc) { 
     assert.equal(err, null); 
     if (doc !== null) { 
      console.log(doc); 
     } else { 
      callback(); 
     } 
    }); 
}; 

findMaterials() yöntemini nasıl çağırıyorsunuz, bu farklı bir soru. Böyle bir şey hile yapmalı.

function doAllTheWork(url, value){ 
    MongoClient.connect(url, function(err, db) { 
     assert.equal(null, err); 
     findMaterials(db, value, function() { 
      db.close(); 
     }); 
    }); 
} 

Geçiş değeri bir çeşit param. Bir API eklentisi oluşturuyorsanız JSON'dan çıkarın. Tüm bunları cmd çizgisinden çalıştırıyorsanız, o yöntemi aynı şekilde yapın.

+0

MongoClient.connect (url, işlev (err, db) { \t assert.equal () err null; \t findMaterials (db, fonksiyon() { \t \t db.Close(); \t}); }); – MattP

+0

@MattP yukarıdaki gibi bir şey mi? – hownowbrowncow

İlgili konular