MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एक सरणी में $addToSet लेकिन यह मुझे शून्य देता है

मुद्दा यह है कि Product.find() . से परिणाम Mongoose दस्तावेज़ों की एक सरणी है यदि क्वेरी आपके इच्छित एकल दस्तावेज़ के बजाय संग्रह में किसी दस्तावेज़ से मेल खाती है।

इस प्रकार अभिव्यक्ति {$addToSet: {products: product._id}} {$addToSet: {products: undefined}} . का समाधान करता है क्योंकि product एक सरणी है और product._id अपरिभाषित है। यह सरल उदाहरण लें

var product = [{ '_id': 1 }];
console.log(product._id) // logs undefined

इस समस्या का समाधान करने के लिए, आप या तो सरणी में एकमात्र तत्व को इस रूप में एक्सेस कर सकते हैं

wishList.update(
    { '_id': request.body.wishlistId },
    { '$addToSet': { 'products': product[0]._id} }, 
    function(err, wishlist) { ... }
);

या findOne() . का उपयोग करें विधि जो उत्पाद की क्वेरी करते समय एकल दस्तावेज़ लौटाती है:

Product.findOne({ '_id': request.body.productId }, function(err, product) {
    if(err) {
        response.status(500).send({err: "could not add item to wishlist"});
    } else {
        wishList.update(
            { '_id': request.body.wishlistId },
            { '$addToSet': { 'products': product._id } }, 
            function(err, wishlist) { ... }
        );
    }
});

findById() विधि इस मामले में भी उपयोगी है अर्थात

Product.findById(request.body.productId, function(err, product) {
    if(err) {
        response.status(500).send({err: "could not add item to wishlist"});
    } else {
        wishList.update(
            { '_id': request.body.wishlistId },
            { '$addToSet': { 'products': product._id } }, 
            function(err, wishlist) { ... }
        );
    }
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Keystonejs बैक-एंड में अपलोड की गई इमेज कैसे दिखाएं?

  2. कुछ क्षेत्रों के साथ $ जोड़ें नल के रूप में शून्य वापसी योग मूल्य के रूप में

  3. विंडोज़ पर डोकर मोंगो छवि शुरू करने में असमर्थ

  4. MongoDB में उप दस्तावेज़ों को क्रमबद्ध करें

  5. MongoDB लेनदेन का उपयोग करने के लिए आवश्यकताएँ