2017-01-17 19 views
1

これまでのところ私のコードは最初に表示されません。Mongoは.find()を使用して自分のコレクションを見ようとしたときに問題になる

var express = require("express"), 
     app = express(), 
bodyParser = require("body-parser"), 
    mongoose = require("mongoose"); 


    mongoose.connect("mongodb://localhost/yelp_camp"); 

    app.use(bodyParser.urlencoded({extended: true})); 
    app.set("view engine","ejs"); 

var chairSchema=new mongoose.Schema({ 
    name:String, 
    image:String, 
    price:Number 
}); 

var data =mongoose.model("data",chairSchema); 
data.create(
{ 
    partname:"short cylinder", 
    img:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/short_cylinder_thumbnail.jpg", 
    price:14.90 
},function(err,chair){ 
    if (err){ 
    console.log(err); 
    } 
    else{ 
    console.log("newly created chair"); 
    console.log(data); 
    } 

} 


); 

私はそれが件のデータと呼ばれるデータベースとコレクションを作成すると仮定された「ノードがapp.js」と内部の私はオブジェクトに似たデータのような存在でなければなりません使用して私のアプリを実行したときので、私の問題があります私は.prettyを(実行する場合data.create関数呼び出しで作成するが、私はyelp_campのDB内の私のコレクションをチェックするために行くとき、私は戻って得るすべてのリスト

{"id" : ObjectId("3453453453453463456353sdsfdsf"),"price":14.9,"_v":0) 

のこの種であるので、私はそれが変更される場合があります)と思いましたしかし、それは同じままです私はどこかに小さなエラーがあるように感じるが、私はそれを見ないでください

答えて

0

schemanameimageと書いていますが、保存中はpartnameimgを使用しています。なぜあなたはこの動作を得ているのですか?

var chairSchema=new mongoose.Schema({ 
    name:String,//<-look here 
    image:String,//<-look here 
    price:Number 
}); 

新しいdocumentを作成するときは、同じ正確なフィールド名を使用する必要があります。

data.create(
{ 
    //partname:"short cylinder", 
    //name should be used instead of partname 
    name:"short cylinder", 
    //img:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/ 
    //'img' should not be used, 'image' should be used instead. 
    image:"http://www.needforseatusa.com/assets/images/products/replacement%20parts/short_cylinder_thumbnail.jpg", 
    price:14.90 
} 
+0

はい、あなたは正しいです。スキーマ・オブジェクト名と同じ名前を指定していない場合、それらのプロパティーを保存することはできません。 pretty()関数は、mongodbシェル(文書が保存されている場合)で動作する必要があります。 – KCFragrance

関連する問題