MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara mencari data yang dipisahkan koma di mongodb

Katakanlah gunakan Map-Reduce untuk membuat koleksi terpisah yang menyimpan genre sebagai larik dengan nilai yang berasal dari string yang dipisahkan koma, yang kemudian Anda dapat menjalankan tugas Pengurangan Peta dan mengelola kueri pada kumpulan keluaran.

Misalnya, saya telah membuat beberapa contoh dokumen ke foo koleksi:

db.foo.insert([
    {genre: 'Action, Adventure, Sci-Fi'},
    {genre: 'Thriller, Romantic'},
    {genre: 'Comedy, Action'}
])

Operasi peta/pengurangan berikut kemudian akan menghasilkan koleksi yang darinya Anda dapat menerapkan kueri berkinerja:

map = function() {
    var array = this.genre.split(/\s*,\s*/);
    emit(this._id, array);
}

reduce = function(key, values) {
    return values;
}

result = db.runCommand({
    "mapreduce" : "foo", 
    "map" : map,
    "reduce" : reduce,
    "out" : "foo_result"
});

Kueri akan mudah, memanfaatkan kueri dengan indeks multi-kunci pada value bidang:

db.foo_result.createIndex({"value": 1});

var genre = ['Action', 'Adventure'];
db.foo_result.find({'value': {'$in': genre}})

Keluaran :

/* 0 */
{
    "_id" : ObjectId("55842af93cab061ff5c618ce"),
    "value" : [ 
        "Action", 
        "Adventure", 
        "Sci-Fi"
    ]
}

/* 1 */
{
    "_id" : ObjectId("55842af93cab061ff5c618d0"),
    "value" : [ 
        "Comedy", 
        "Action"
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB 3.6.2 2008R2 Plus Tidak Menginstal

  2. Bagaimana cara memeriksa apakah koneksi MongoDB masih hidup di Node.js

  3. Luwak pilih bidang untuk kembali dari findOneAndUpdate

  4. Bagaimana cara menulis bentuk bson dari kueri mongo di golang?

  5. Luwak _id terpengaruh sebelum menyimpan