MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Заявка за подобен масив в MongoDB

Благодаря на всички, които се опитаха да ми помогнат. Оценявам вашата помощ.

Намерих решение чрез тръбопровод за агрегиране.

var myArray = ['a', 'b', 'c'];

db.test.aggregate([
    {
        $unwind: '$chars',
    },
    {
        $match: { chars: { $in: myArray } },
    },
    {
        $group: {
            _id: '$_id',
            count: { $sum: 1 },
        },
    },
    {
        $project: {
            _id: 1,
            count: 1,
            score: { $divide: ['$count', myArray.length] },
        },
    },
    {
        $sort: { score: -1 },
    },
]);

Ето какво връща конзолата:

{ "_id" : ObjectId("586ebeacb2ec9fc7fef5ce31"), "count" : 3, "score" : 1 }
{ "_id" : ObjectId("586ebeb9b2ec9fc7fef5ce32"), "count" : 2, "score" : 0.6666666666666666 }
{ "_id" : ObjectId("586ebe89b2ec9fc7fef5ce2f"), "count" : 1, "score" : 0.3333333333333333 }

Надяваме се, че някой намира това за полезно.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как получавате достъп до атрибути на обект, заявен от Mongo в Meteor

  2. Каква е най-добрата практика за свързване/прекъсване на връзката с база данни?

  3. Осредняване на поле за поддокумент между документи в Mongo

  4. Конвертирайте .NET Guid в MongoDB ObjectID

  5. Typescript Mongoose игнорира определено поле в резултата от заявката по безопасния начин