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

MongoDB $literal

Di MongoDB, $literal operator pipeline agregasi mengembalikan nilai tanpa penguraian.

Ia menerima ekspresi valid apa pun, dan mengembalikan ekspresi yang belum diurai.

$literal operator dapat berguna ketika Anda memiliki nilai yang secara tidak sengaja dapat ditafsirkan oleh MongoDB sebagai ekspresi, tetapi Anda tidak menginginkannya.

Misalnya, jika Anda memiliki jumlah uang yang menyertakan tanda dolar, MongoDB mungkin secara tidak sengaja menafsirkannya sebagai nama bidang. Anda dapat menggunakan $literal untuk mencegah MongoDB menafsirkan ekspresi seperti itu.

Contoh

Misalkan kita memiliki koleksi yang disebut test dengan dokumen berikut:

{ "_id" : 1, "name" : "Homer" }

Berikut ini contoh penerapan $literal :

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 1 ] } } },
    {
      $project:
        { 
          _id: 0,
          interpreted: "$name",
          literal: { $literal: "$name" }
        }
    }
  ]
)

Hasil:

{ "interpreted" : "Homer", "literal" : "$name" }

Dalam contoh ini, kami mengembalikan nilai name kolom dengan menggunakan $name untuk merujuknya.

Kami juga mengembalikan nilai literal $name , tanpa MongoDB mengartikannya sebagai name bidang:

Contoh 2

Misalkan koleksi kita berisi dokumen berikut:

{ "_id" : 2, "a" : 10, "b" : 5 }

Berikut contoh lain penggunaan $literal :

db.test.aggregate(
  [
    { $match: { _id: { $in: [ 2 ] } } },
    {
      $project:
        { 
          _id: 0,
          interpreted: { $multiply: [ "$a", "$b" ] },
          literal: { $literal: { $multiply: [ "$a", "$b" ] } }
        }
    }
  ]
)

Hasil:

{ "interpreted" : 50, "literal" : { "$multiply" : [ "$a", "$b" ] } }

Dalam hal ini, bidang pertama yang dikembalikan berisi hasil $multiply operator terhadap a dan b bidang.

Kolom kedua hanya menampilkan nilai literal yang kami berikan ke $literal operator.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara menyimpan file ke MongoDB?

  2. Perbedaan antara menyimpan ObjectId dan bentuk stringnya, di MongoDB

  3. Bisakah saya melakukan kueri teks dengan driver mongodb c#?

  4. Mongoose - menggunakan Populate pada array ObjectId

  5. MySQL ke MongoDB - Lembar Cheat Admin