2014-06-22 14 views
48

मैंनेवला, खोज

exports.someValue = function(req, res, next) { 
    //query with mongoose 
    var query = dbSchemas.SomeValue.find({}).select('name'); 

    query.exec(function (err, someValue) { 
     if (err) return next(err); 
     res.send(someValue); 
    }); 
}; 

साथ लेकिन मेरे json जवाब में मैं भी _ id प्राप्त कर रहा हूँ केवल एक विशेष क्षेत्र को चुनने के लिए कोशिश कर रहा हूँ के साथ एक विशेष क्षेत्र का चयन करें, अपने दस्तावेज़ स्कीमा केवल दो fiels है, _id और नाम

[{"_id":70672,"name":"SOME VALUE 1"},{"_id":71327,"name":"SOME VALUE 2"}] 

क्यों ???

उत्तर

87

_id क्षेत्र जब तक आप स्पष्ट उसे निकाल दें और हमेशा मौजूद रहता है।

exports.someValue = function(req, res, next) { 
    //query with mongoose 
    var query = dbSchemas.SomeValue.find({}).select('name -_id'); 

    query.exec(function (err, someValue) { 
     if (err) return next(err); 
     res.send(someValue); 
    }); 
}; 

या स्पष्ट रूप से एक वस्तु के माध्यम से:

exports.someValue = function(req, res, next) { 
    //query with mongoose 
    dbSchemas.SomeValue.find({}, 'name', function(err, someValue){ 
     if(err) return next(err); 
     res.send(someValue); 
    }); 
    //this eliminates the .select() and .exec() methods 
}; 

मामले में आप में से ज्यादातर के हैं:

exports.someValue = function(req, res, next) { 
    //query with mongoose 
    var query = dbSchemas.SomeValue.find({}).select({ "name": 1, "_id": 0}); 

    query.exec(function (err, someValue) { 
     if (err) return next(err); 
     res.send(someValue); 
    }); 
}; 
+0

यह क्या है - आप की बात करते हैं, मैं कहाँ जानकारी – Remario

34

अब ऐसा करने का एक छोटा तरीका नहीं है तो - सिंटैक्स का उपयोग करते हैं Schema fields और केवल कुछ ही छोड़ना चाहते हैं, आप फ़ील्ड को - के साथ उपसर्ग कर सकते हैं। दूसरा तर्क में पूर्व "-name" लिए नहीं दस्तावेज़ में name क्षेत्र शामिल होंगे जबकि उदाहरण यहाँ दिया केवल लौटे डॉक्स में name क्षेत्र होगा।

+6

पा सकते हैं जो उन लोगों के कई क्षेत्रों को फिल्टर करने के लिए, उन्हें अल्पविराम से अलग नहीं है, सिर्फ सादा अंतरिक्ष: ' ब्लॉग ItemModel.find ({}, 'शीर्षक intro_image intro_text publ_date', फ़ंक्शन (गलती, blog_items) {.. ' – Starwave

+1

उन लोगों के लिए जो ऊपर का उपयोग करना चाहते हैं ** dbSchema.Somevalue.find ({userEmail: 'test @ test .com '},' userEmail -_id ', फ़ंक्शन (गलती, कुछ वैल्यू) ** – user2180794

8

मोंगोस में मूल मोंगोडीबी कोड का उपयोग करके इसे संभालने का एक बेहतर तरीका है।

exports.getUsers = function(req, res, next) { 

    var usersProjection = { 
     __v: false, 
     _id: false 
    }; 

    User.find({}, usersProjection, function (err, users) { 
     if (err) return next(err); 
     res.json(users); 
    });  
} 

http://docs.mongodb.org/manual/reference/method/db.collection.find/

नोट:

वर usersProjection

यहाँ सूचीबद्ध लौटाया नहीं जाएगा/मुद्रित वस्तुओं की सूची।

3
db.someschema.find({ }, { "name": 1,"_id": 0 }).exec(function(err,Result){ 
    var NameArray = Result; 
    console.log(NameArray); 
}) 

आउटपुट:

[ 
{"name":"peter"}, 
{"name":"john"}, 
{"name":"joseph"} 
]