অ্যারে ক্ষেত্রটিতে মঙ্গোডিবিতে একটি অনন্য মান বা অন্য অ্যারে রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন?


143

আমি এখন মঙ্গোদব ব্যবহার করছি।

আমার ব্লগপোস্ট সংগ্রহ রয়েছে এবং ব্লগপোস্টে একটি ট্যাগ ফাইল রয়েছে যা একটি অ্যারে, যেমন

blogpost1.tags = ['tag1', 'tag2', 'tag3', 'tag4', 'tag5']
blogpost2.tags = ['tag2', 'tag3']
blogpost3.tags = ['tag2', 'tag3', 'tag4', 'tag5']
blogpost4.tags = ['tag1', 'tag4', 'tag5']

আমি কীভাবে এই অনুসন্ধানগুলি করতে পারি

  1. 'ট্যাগ1' রয়েছে
  2. ['ট্যাগ1', 'ট্যাগ2'],
  3. ['ট্যাগ3', 'ট্যাগ 4'] এর মধ্যে একটি রয়েছে

উত্তর:


219

এটি ব্যবহার করে দেখুন:

db.blogpost.find({ 'tags' : 'tag1'}); //1
db.blogpost.find({ 'tags' : { $all : [ 'tag1', 'tag2' ] }}); //2
db.blogpost.find({ 'tags' : { $in : [ 'tag3', 'tag4' ] }}); //3

6
সাহায্যে এটি নথিবদ্ধ: mongodb.org/display/DOCS/…
স্কট হার্নান্দেজ

2
for সকলের জন্য এর অর্থ কী সমস্ত উপাদান এবং প্রকাশিত ক্রমে বা এটি কেবল বিন্যস্ত?
26:36

2
@ স্কট হার্নান্দেজ আমি দেখতে পাচ্ছি না যে তারা উল্লেখ করেছে যে আপনি যে ক্ষেত্রটি অনুসন্ধান হিসাবে ব্যবহার করছেন তা কোনও অ্যারে হতে পারে এবং কীভাবে পরিচালনা করা হয়। "ক্ষেত্র: {$ ইন: অ্যারে}"। আপনি অ্যারের অ্যারের মধ্যে একটি অ্যারের অনুসন্ধান করলে কী হবে? উল্লিখিত না.
Zut

সদৃশ বন্ধ করার জন্য অ্যারেতে আমরা কি করতে পারি এমন কোন সূচক রয়েছে? যদি হ্যাঁ, দয়া করে গাইড করুন।
হিতেশ যোশি

1
@redben এর নিখরচায় ডক্সে যেমন লেখা আছে: operator সমস্ত অপারেটর ডকস । কেবল উদাহরণ অংশটি পড়ুন এবং আপনি দেখতে পাবেন।
ম্যাথিয়াস বি

5

আমার অভিজ্ঞতা হ'ল (2) এর জন্য নিম্নলিখিত সমাধানগুলি "$ সমস্ত" সমেত একটির চেয়ে অনেক দ্রুত:

db.blogpost.find({ $and: [ {tags: 'tag1'} ,{tags: 'tag2'} ] });

তবে সত্যি বলতে কি আমি তা করি না। আমি আগ্রহী হবে, যদি কেউ জানেন।


1
যাইহোক, কেবল এটি তালিকাভুক্ত কীওয়ার্ড তালিকায় পরীক্ষা করে দেখুন। সম্পূর্ণরূপে একই ফলাফল $ এবং এবং $
সমস্তের সাথে

এর মধ্যেই এটি নতুন সংস্করণগুলির সাথে পরিবর্তিত হতে পারে।
হেইনব

এটা পরিস্থিতিগত। "$ এবং" এর জন্য মঙ্গডব একটি যৌক্তিক "এবং" ক্রিয়াকলাপ তৈরি করে। সুতরাং প্রথম প্রকাশটি যদি মিথ্যা হয় তবে দ্বিতীয়টি বিবেচনায় নেওয়া হয় না। এর অর্থ কম প্রক্রিয়াজাতকরণ।
কুবুদি

তবে 'সকলের' সাথেও এটি হওয়া উচিত, তাই না !?
হেইনব

1
$ সবগুলিই সম্ভবত একটি সূচকে দুটি তত্ক্ষণাতীত $ এবং ফলাফলটিতে অনুক্রমিক স্ক্যানের সাথে সম্ভবত একটি লুক রয়েছে।
ইভান ক্যারল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.