0

コードの最初のブロックの場合、console.log( "ff:" + ff)は次のように出力されます:

ff:{_id:sd845y3hishofiuwhei、フルネーム:'sachin'}

console.log("ff JSON : "+JSON.stringify(ff)); // this line prints like below : 

ff JSON:[{"_ id": "sd845y3hishofiuwhei"、 "fullname": "sachin"}]

その「サチン」を別の変数で別々に取得するにはどうすればよいですか?

var fullname=SampleModel.find({uname:req.session.uname},{fullname : true},function(err,ff){
    if(!err){
        console.log("ff : "+ff);
        console.log("ff JSON  : "+JSON.stringify(ff));
        return ff;
    }else { 
        return null;
    }
});

以下のコードブロックは、「無効なオブジェクトID」のようなエラーを出します。何が問題になる可能性がありますか?

var ret= AnotherModel.find({_id : { $nin : ["1","2"] } }, function(err,details){
    if(!err) {
        res.send(details);
    }
    else {
        console.log("Error : "+err);
        res.send(err);
    }
});

私はこのようなtextareaを実装しています

<textarea id="myarea" cols="100" rows="20"   ></textarea>

行を変更すると出力ボックスの高さが変更されますが、「cols」を変更するとその列の幅は変更されません。出力ボックスの幅も狭いので、chromeとmozillaの両方をチェックインします。解決策は何ですか?ありがとう

4

1 に答える 1

1

mongodbドライバーだけでなく、mongooseを使用していることを理解しています。

コードの最初のブロックでは、ff 値は文字列ではなく、オブジェクトの配列です。

次のようなことを行うだけで「sachin」変数にアクセスできます。var fullname = ff[0].fullname; もちろん、配列を反復処理するのが最善ですが、アイデアは得られます。

オブジェクトを 1 つだけ取得する場合は、代わりに「findOne」関数を使用する必要があります。これにより、次のように「sachin」にアクセスできるようになります。var fullname = ff.fullname;

2 番目の質問については、クエリ システムを使用する必要があります。クエリは、チェーンしてより細かく調整できる遅延リクエストです。クエリを遅らせるには、コールバック関数を省略してください:var query = Model.find({});

次に、必要なフィルターを追加します。query.where('_id').nin(['1', '2']);

最後に、それを実行します:

query.exec(function (err, docs) {
    // called when the `query.complete` or `query.error` are called
    // internally
});

ドキュメントの検索クエリに関する情報。

于 2012-04-16T14:03:57.980 に答える