Как вставить данные в коллекцию MongoDB с помощью валидатора, используя Java?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как вставить данные в коллекцию MongoDB с помощью валидатора, используя Java?

Сообщение Anonymous »

Я создаю коллекцию MongoDB с помощью валидатора

Код: Выделить всё

db.createCollection("Student", {
validator: { $jsonSchema: {
bsonType: "Object",
required: ["name", "score"],
properties: {
name: {
bsonType: "string",
},
score: {
bsonType: "object",
required: ["History", "Math", "Computer"],
properties: {
History: {
bsonType: "int"
},
Math: {
bsonType: "int"
},
Computer: {
bsonType: "int"
}
}
}
}
}}
})
Я хочу вставить этот json

Код: Выделить всё

{
"name": "scofield",
"score":{
"History": 45,
"Math": 89,
"Computer": 100
}
}
по этому коду

Код: Выделить всё

mport org.bson.Document;
import com.mongodb.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;

public class Add {

public static void main(String[] args) {
// link MongoDB
MongoClient  mongoClient=new MongoClient("localhost",27017);
System.out.println("client");

// get MongoDatabase object
MongoDatabase database = mongoClient.getDatabase("experiment");
System.out.println("database");

// get MongoCollection object
MongoCollection collection = database.getCollection("Student");
System.out.println("collection");

Document studentDoc = new Document("name", "scofield")
.append("score", new Document("History", 45)
.append("Math", 89)
.append("Computer", 100));
System.out.println("create doc");

collection.insertOne(studentDoc);
System.out.println("insert");

mongoClient.close();
System.out.println("close");
}
}
но получаю ошибку:

Код: Выделить всё

Nov 20, 2024 4:42:48 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Cluster created with settings {hosts=[localhost:27017], mode=SINGLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
client
database
collection
Nov 20, 2024 4:42:48 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, all=[ServerDescription{address=localhost:27017, type=UNKNOWN, state=CONNECTING}]}. Waiting for 30000 ms before timing out
Nov 20, 2024 4:42:48 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:1, serverValue:10}] to localhost:27017
Nov 20, 2024 4:42:48 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Monitor thread successfully connected to server with description ServerDescription{address=localhost:27017, type=STANDALONE, state=CONNECTED, ok=true, version=ServerVersion{versionList=[4, 4, 22]}, minWireVersion=0, maxWireVersion=9, maxDocumentSize=16777216, roundTripTimeNanos=592516}
Nov 20, 2024 4:42:48 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Opened connection [connectionId{localValue:2, serverValue:11}] to localhost:27017
create doc
insert
Nov 20, 2024 4:42:48 PM com.mongodb.diagnostics.logging.JULLogger log
INFO: Closed connection [connectionId{localValue:2, serverValue:11}] to localhost:27017 because the pool has been closed.
close
даже я меняю коллекцию без валидатора, получаю ту же ошибку.

Затем я упрощаю данные и просто ввожу ключ-значение в коллекцию в предыдущей строке, получаю ту же ошибку

Версия MongoDB: 4.4.22

Версия mongo-java-driver: 3.2.2
Я прочитал официальную версию документы и найдите Гугл

Подробнее здесь: https://stackoverflow.com/questions/792 ... using-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»