#arrays #mongodb
#массивы #mongodb
Вопрос:
В настоящее время я изучаю Mongo DB и пытаюсь вставить числа в свою коллекцию «numbers» (в командной оболочке mongo).
//This works :
db.numbers.insertMany([{"number":1},{"number":2}]);
//This doesn't
db.numbers.insertMany([1,2,3,4,5,6]);
(1) Означает ли это, что number не является действительным документом или мне не хватает очень простой концепции?
(2) Почему Mongo-db не присваивает Object-ID номерам автоматически в этом случае?
Комментарии:
1. «Означает ли это, что number не является допустимым документом» — да. Это не документ, это число.
Ответ №1:
//actual output from Mongoshell version 4.2.6 command line
> db.numbers.insertMany([{"number":1},{"number":2}]);
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("5f79fa89d04cd9e2b3acbf03"),
ObjectId("5f79fa89d04cd9e2b3acbf04")
]
}
> db.numbers.find();
{ "_id" : ObjectId("5f79fa89d04cd9e2b3acbf03"), "number" : 1 }
{ "_id" : ObjectId("5f79fa89d04cd9e2b3acbf04"), "number" : 2 }
> db.numbers.insertOne({number:[1,2,3,4,5,6]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5f79fa9ed04cd9e2b3acbf05")
}
> db.numbers.find();
{ "_id" : ObjectId("5f79fa89d04cd9e2b3acbf03"), "number" : 1 }
{ "_id" : ObjectId("5f79fa89d04cd9e2b3acbf04"), "number" : 2 }
{ "_id" : ObjectId("5f79fa9ed04cd9e2b3acbf05"), "number" : [ 1, 2, 3, 4, 5, 6 ] }
>
Комментарии:
1. Спасибо @Mallik, но это не отвечает на мой вопрос, в вашем случае вы создаете другую коллекцию с именем «number» внутри коллекции «numbers». У меня возникают сомнения, почему не работает следующая строка: db.numbers.insertMany([1,2,3,4,5,6]);
2. какую ошибку вы получаете для db.numbers.insertMany([1,2,3,4,5,6]);? Я думаю, что ошибка ответит на ваш запрос.
3. Я получаю эту ошибку в 4.4.1 db.numbers.insertMany([1,2,3,4,5,6]); > db.version() 4.4.1 > db.numbers.insertMany([1,2,3,4,5,6]); неперехваченное исключение: Ошибка: аргумент, переданный addIdIfNeeded, не является объектом :