মঙ্গুজ ক্যোয়ারী যেখানে মান নাল নয়


104

নিম্নলিখিত কোয়েরি করতে খুঁজছেন:

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

আমি যেখানে ক্লজটি সঠিকভাবে করছি? আমি নথী যেখানে নথী নির্বাচন করতে চান pincode

উত্তর:


188

আপনি এটি করতে সক্ষম হবেন (যেমন আপনি এপিআই কোয়েরি ব্যবহার করছেন):

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

... যার ফলস্বরূপ একটি মঙ্গো ক্যোয়ারের অনুরূপ হবে:

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

কয়েকটি লিঙ্ক যা সাহায্য করতে পারে:


4
নে জন্য দাঁড়ানো কি?
ওয়েসবোস

4
"সমান নয়", উত্তরের লিঙ্কগুলি যুক্ত করুন
সংখ্যাগুলি 1111407

এটি সম্পর্কে MongoDB ডক্স (এখন) এখানে আছেন: docs.mongodb.org/manual/reference/operator/query এটি সম্পর্কে আপ-টু-ডেট ডক, এখানে: mongoosejs.com/docs/api.html#query_Query-ne
শুক্রবার

অ্যারে দিয়ে কীভাবে অর্জন করবেন ...("myArraySubDoc[0].someValue").ne(true)?
স্টিভ কে

@SirBenBenji কিছুwhere("myArraySubDoc.0.someValue").ne(true)
numbers1311407

9

আমি এখানেই শেষ হয়েছি এবং আমার সমস্যাটি ছিল আমি জিজ্ঞাসা করছি

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

পরিবর্তে

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

কেবল একটি নোট এটি হ'ল আমি নিজের জন্য সন্ধান করছিলাম, ধন্যবাদ!
ক্যাকুন

আমি লড়াইয়ের চেষ্টা করছিলাম ap এপি ডকে না! ধন্যবাদ!
জে এডওয়ার্ডস

7

নে

ক্ষেত্রের মান নির্দিষ্ট মানের সমান নয় যেখানে নথি নির্বাচন করে। এর মধ্যে ক্ষেত্রটি অন্তর্ভুক্ত নয় এমন নথি রয়েছে।

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

in নি

in n নথিগুলি নির্বাচন করে যেখানে: ক্ষেত্রের মান নির্দিষ্ট অ্যারেতে নেই বা ক্ষেত্রটির অস্তিত্ব নেই।

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
}

আগাম ধন্যবাদ.


উত্তরগুলির আকারে আপনার প্রশ্নগুলি জিজ্ঞাসা করা উচিত নয়
ইয়াসিন ওকুমুয়
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.