MongoDB'den mongoose kullanarak veri almakta sorun yaşıyorum. İşte Mongoose find kullanarak bir dizenin bir bölümünü içeren tüm değerler nasıl alınır?
benim Şema geçerli:const BookSchema = new Schema(
\t {
\t \t _id:Number,
\t \t title:String,
\t \t authors:[String],
\t \t subjects:[String] \t
\t }
);
i nesne gömülü 2 diziler var gördüğünüz gibi, en yazarların içeriği böyle bir şey olabilir varsayalım: Yazarlar: ["Alex Ferguson", "Didier Drogba", "Cristiano Ronaldo", "Alex"]
elde etmeye çalıştığım şey dizideki bütün Alex'leri elde etmektir.
Şimdiye kadar, değerleri tamamen eşleştiriyorlarsa değerleri elde edebildim. Ancak Alex'i içerenleri almaya çalışırsam cevap her zaman [].
Bilmek istediğim, bir görünüm veya koleksiyon oluşturmak için bir map-reduction gerçekleştirmeden find() öğesini kullanarak bunu nasıl yapabileceğimi ve ardından find() öğesini bu uygulamayla nasıl uygulayabileceğimi bilmektir. {yazarları kesin Bazı şeyleri ama hiçbir şans {: {$ elemMatch req.query.q} yazarları} çalıştı
Book.find({authors:req.query.q} , function(errs, books){
\t \t \t if(errs){
\t \t \t \t res.send(errs); \t
\t \t \t }
\t \t \t
\t \t \t res.json(books);
\t \t });
maçları için
kod burada çalışır: {$ in: [req.query.q]}}
Bu, bana bir hata veriyor ve bunun üzerine, burada bulduğum başka bir gönderide çok verimsiz olduğunu söylüyor. {$ burada:! This.authors.indexOf (req.query.q) = -1}
ve ben de {yazarlar: {$ regex: "./ değeri/i"}} çalıştı
Harita azaltımı iyi çalışıyor, hangisinin daha iyi olduğunu görmek için diğer yaklaşımı kullanarak çalışmam gerekiyor mu?
Her türlü yardım büyük beğeni topluyor. Eminim bu kolay, ama NodeJS ve Mongo'yla yeniyim ve bunu kendi başıma çözemedim.
teşekkürler Neil, haklıydınız. Çalıştığınız başlangıçta gönderdiğiniz iki kod parçasından birini kullanın. – Dyan