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

Permintaan Mongoose:Temukan elemen di dalam array

Menggunakan $ operator posisi, Anda bisa mendapatkan hasilnya. Namun, jika Anda memiliki beberapa elemen di vehicles array semuanya akan dikembalikan dalam hasil, karena Anda hanya dapat menggunakan satu operator posisi dalam proyeksi dan Anda bekerja dengan 2 array (satu di dalam yang lain).

Saya sarankan Anda melihat aggregation framework , karena Anda akan mendapatkan lebih banyak fleksibilitas. Berikut ini contoh kueri untuk pertanyaan Anda yang berjalan di shell. Saya tidak akrab dengan luwak, tapi saya rasa ini akan tetap membantu Anda dan Anda dapat menerjemahkannya:

db.collection.aggregate([
    // Get only the documents where "email" equals "[email protected]" -- REPLACE with params.username
    {"$match" : {email : "[email protected]"}}, 
    // Unwind the "inventories" array
    {"$unwind" : "$inventories"}, 
    // Get only elements where "inventories.title" equals "activeInventory"
    {"$match" : {"inventories.title":"activeInventory"}}, 
    // Unwind the "vehicles" array
    {"$unwind" : "$inventories.vehicles"}, 
    // Filter by vehicle ID -- REPLACE with vehicleID 
    {"$match" : {"inventories.vehicles._id":ObjectId("53440e94c02b3cae81eb0069")}}, 
    // Tidy up the output
    {"$project" : {_id:0, vehicle:"$inventories.vehicles"}}
])

Ini adalah output yang akan Anda dapatkan:

{
        "result" : [
                {
                        "vehicle" : {
                                "_id" : ObjectId("53440e94c02b3cae81eb0069"),
                                "tags" : [
                                        "vehicle"
                                ],
                                "details" : [
                                        {
                                                "_id" : ObjectId("53440e94c02b3cae81eb0066"),
                                                "year" : 2007,
                                                "transmission" : "Manual",
                                                "price" : 1000,
                                                "model" : "Firecar",
                                                "mileageReading" : 50000,
                                                "make" : "Bentley",
                                                "interiorColor" : "blue",
                                                "history" : "CarProof",
                                                "exteriorColor" : "blue",
                                                "driveTrain" : "SWD",
                                                "description" : "test vehicle",
                                                "cylinders" : 4,
                                                "mileageType" : "kms"
                                        }
                                ]
                        }
                }
        ],
        "ok" : 1
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Hapus semua bidang yang null

  2. Kueri untuk mendapatkan data X menit terakhir dengan Mongodb

  3. Kueri MongoDB, urutkan lalu ambil dokumen ke-n untuk grup

  4. cara memperbarui banyak dokumen dengan nilai berbeda

  5. E:Tidak dapat menemukan paket mongodb-org