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

स्प्रिंग बूट ऐप के माध्यम से मोंगोडब तक पहुँचने पर प्रमाणीकरण त्रुटि

मुझे समस्या मिली। इस धागे की पूर्णता के लिए, मैं कोड सहित उत्तर साझा करूंगा। मुद्दा यह था कि मैंने आवेदन संपत्ति का उपयोग किया था spring.data.mongodb.uri गलत:इसका यूआरआई में उपयोगकर्ता नाम और पासवर्ड नहीं था, क्योंकि मैंने गलती से माना जाता है कि spring.data.mongodb.username और spring.data.mongodb.password ने इसे कवर किया है। तो, या तो उपयोगकर्ता नाम और पासवर्ड के साथ यूरी का उपयोग करें, या मेजबान और डेटाबेस (और शायद पोर्ट भी) वसंत गुणों का स्पष्ट रूप से उपयोग करें। यहां कोड है। यह स्प्रिंग बूट ऐप में mongoDB सपोर्ट के साथ काम करेगा (उस प्रोजेक्ट को बनाने के लिए इनिशियलाइज़र या IntelliJ का उपयोग करें)। मेरे पास एक मॉडल है:

package net.IndyStef.model;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection = "person")
public class Person {

@Id
private String id;

private String name;
private Integer age;

public Person() {
}

public Person(String id) {
    this.id = id;
}

public Person(String id, String name, Integer age) {
    this.id = id;
    this.name = name;
    this.age = age;
}

... getters/setters omitted for breverity ...
}

डेटा को एक रिपॉजिटरी के माध्यम से पढ़ा और लिखा जाता है:

package net.IndyStef.repository;

import net.okrongli.model.Person;
import org.springframework.data.mongodb.repository.MongoRepository;

/**
 * Created by IndyStef on 23/08/16.
 */
public interface PersonRepository extends MongoRepository<Person, String> {
}

डेटाबेस का नाम, होस्ट और क्रेडेंशियल application.properties फ़ाइल में हैं:

spring.data.mongodb.host=192.168.1.90
spring.data.mongodb.database=people
spring.data.mongodb.username=user
spring.data.mongodb.password=password
#spring.data.mongodb.uri=mongodb://192.168.1.90/people

यूरी को डेटाबेस और उपयोगकर्ता नाम के साथ नहीं मिलाना महत्वपूर्ण है। यदि आप uri का उपयोग करते हैं, तो इसमें उपयोगकर्ता नाम और पासवर्ड शामिल करना होगा, जैसे:

spring.data.mongodb.uri=mongodb://user:[email protected]/people

इसका परीक्षण करने के लिए, मैंने एक साधारण स्प्रिंग कमांड लाइन रनर का उपयोग किया:

package net.IndyStef;

import net.IndyStef.model.Person;
import net.IndyStef.repository.PersonRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import java.util.List;

@SpringBootApplication
public class MongoDbTestApplication implements CommandLineRunner {

    public static void main(String[] args) {
        SpringApplication.run(MongoDbTestApplication.class, args);
    }

    @Autowired
    private PersonRepository repository;

    @Override
    public void run(String... args) {

        repository.save(new Person("peter.pan", "Peter Pan", 865));

        List<Person> people = repository.findAll();

        for (Person person: people) {
            System.out.println(person);
        }
    }
}

मुझे उम्मीद है कि यह स्पष्टीकरण दूसरों की मदद करता है जो इसे समझ नहीं पाए, जैसे मैं कुछ दिनों के लिए।

धन्यवाद,

स्टीफ़न



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Morphia MongoDB अशक्त और गैर-मौजूदा फ़ील्ड के लिए जाँच करें

  2. महीने के आधार पर मोंगोडब में पुराने रिकॉर्ड हटाएं

  3. MongoDB mongorestore विफलता:लोकेल ::पहलू ::_S_create_c_locale नाम मान्य नहीं है

  4. ब्लॉग के लिए मोंगोडब स्कीमा डिज़ाइन

  5. MongoDB से कैसे पढ़ें