मानगो क्वेरी जहां मान शून्य नहीं है


101

निम्नलिखित प्रश्न करने के लिए देख रहे हैं:

Entrant
    .find
      enterDate : oneMonthAgo
      confirmed : true
    .where('pincode.length > 0')
    .exec (err,entrants)->

क्या मैं ठीक से क्लॉज कर रहा हूं? मैं उन दस्तावेजों का चयन करना चाहता हूं जहां pincodeअशक्त नहीं है।

जवाबों:


184

आपको ऐसा करने में सक्षम होना चाहिए (जैसा कि आप क्वेरी एपीआई का उपयोग कर रहे हैं):

Entrant.where("pincode").ne(null)

... जिसके परिणामस्वरूप एक मोंगो क्वेरी जैसी होगी:

entrants.find({ pincode: { $ne: null } })

कुछ लिंक जो मदद कर सकते हैं:


2
ne किस लिए खड़ा है?
वेसबोस

3
"बराबर नहीं", उत्तर के लिंक को जोड़ते हुए
1311407

इसके बारे में mongodb डॉक्स यहां (अब) हैं: docs.mongodb.org/manual/reference/operator/query इसके बारे में अप-टू-डेट डॉक्टर यहां हैं: mongoosejs.com/docs/api.html#query_Query-ne
जेरोपर z

सरणी के साथ कैसे प्राप्त करें, उदा ...("myArraySubDoc[0].someValue").ne(true)?
स्टीव के

@SirBenBenji कुछ ऐसा हैwhere("myArraySubDoc.0.someValue").ne(true)
नंबर 1311407

9

मैं यहां समाप्त हुआ और मेरा मुद्दा यह था कि मैं किसके लिए क्वेरी कर रहा था

{$not: {email: /@domain.com/}}

के बजाय

{email: {$not: /@domain.com/}}

बस एक नोट यह वही है जो मैं अपने लिए देख रहा था, धन्यवाद!
Cacoon

मैं एपी डॉक्टर में $ नहीं खोजने के लिए संघर्ष कर रहा था! धन्यवाद!
जे एडवर्ड्स

7

$ ne

उन दस्तावेज़ों का चयन करता है जहाँ फ़ील्ड का मान निर्दिष्ट मान के बराबर नहीं है। इसमें ऐसे दस्तावेज़ शामिल हैं जिनमें फ़ील्ड शामिल नहीं है।

User.find({ "username": { "$ne": 'admin' } })

$ निन

$ नौ उन दस्तावेजों का चयन करता है जहां: फ़ील्ड मान निर्दिष्ट सरणी में नहीं है या फ़ील्ड मौजूद नहीं है।

User.find({ "groups": { "$nin": ['admin', 'user'] } })

0

कुल दस्तावेजों की गणना करें जहां क्षेत्र का मूल्य निर्दिष्ट मूल्य के बराबर नहीं है।

async function getRegisterUser() {
    return Login.count({"role": { $ne: 'Super Admin' }}, (err, totResUser) => {
        if (err) {
            return err;
        }
        return totResUser;
    })
}

0

ठीक है दोस्तों मुझे इस समस्या का एक संभावित समाधान मिला। मुझे महसूस हुआ कि मैंगो में जॉइन नहीं होता है, इसीलिए सबसे पहले आपको अपनी पसंद की भूमिका के साथ यूजर की आईडी को क्वेरी करने की जरूरत है, और उसके बाद प्रोफाइल डॉक्यूमेंट में एक और क्वेरी करें, कुछ इस तरह:

    const exclude: string = '-_id -created_at -gallery -wallet -MaxRequestersPerBooking -active -__v';

  // Get the _ids of users with the role equal to role.
    await User.find({role: role}, {_id: 1, role: 1, name: 1},  function(err, docs) {

        // Map the docs into an array of just the _ids
        var ids = docs.map(function(doc) { return doc._id; });

        // Get the profiles whose users are in that set.
        Profile.find({user: {$in: ids}}, function(err, profiles) {
            // docs contains your answer
            res.json({
                code: 200,
                profiles: profiles,
                page: page
            })
        })
        .select(exclude)
        .populate({
            path: 'user',
            select: '-password -verified -_id -__v'
            // group: { role: "$role"} 
          })
    });

-1

नमस्कार दोस्तों मैं इस के साथ फंस गया हूं। मेरे पास एक दस्तावेज़ प्रोफ़ाइल है, जिसका उपयोगकर्ता के लिए एक संदर्भ है, और मैंने उन प्रोफाइल को सूचीबद्ध करने की कोशिश की है जहां उपयोगकर्ता रेफ अशक्त नहीं है (क्योंकि मैं पहले से ही आबादी के दौरान आरओएल द्वारा फ़िल्टर किया गया था), लेकिन कुछ घंटों के बाद मुझे पता नहीं चल सकता है इसको कैसे लें। मेरे पास यह प्रश्न है:

const profiles = await Profile.find({ user: {$exists: true,  $ne: null }})
                            .select("-gallery")
                            .sort( {_id: -1} )
                            .skip( skip )
                            .limit(10)
                            .select(exclude)
                            .populate({
                                path: 'user',
                                match: { role: {$eq: customer}},
                                select: '-password -verified -_id -__v'
                              })

                            .exec();

And I get this result, how can I remove from the results the user:null colletions? . I meant, I dont want to get the profile when user is null (the role does not match).
{
    "code": 200,
    "profiles": [
        {
            "description": null,
            "province": "West Midlands",
            "country": "UK",
            "postal_code": "83000",
            "user": null
        },
        {
            "description": null,

            "province": "Madrid",
            "country": "Spain",
            "postal_code": "43000",
            "user": {
                "role": "customer",
                "name": "pedrita",
                "email": "myemail@gmail.com",
                "created_at": "2020-06-05T11:05:36.450Z"
            }
        }
    ],
    "page": 1
}

अग्रिम में धन्यवाद।


आपको अपने सवालों के जवाब के रूप में नहीं पूछना चाहिए
यासीन ओकुमुस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.