db.collection равен undefined в MongoDB
Здравствуйте! Начал изучать MongoDB и столкнулся с непонятным поведением базы данных.
Вот код подключающий базу данных MongoDB выводящий свойство collection: let MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://localhost:27017/test', { useNewUrlParser: true }, function(err, db) { console.log(db.collection); // undefined }); Проблема в том, что в объекте db нет свойства collection. Из-за этого я не могу, например, создать новую коллекцию (db.collection('mytable')). В чем может быть причина? Может я неверно установил Монго? Но так она бы вообще не работала... |
А не надо ничего создавать. Просто писать
db.collection('mytable').insert(... |
Этот код не сработает потому что db.collection равен undefined (в объекте db нет такого свойства или метода).
let MongoClient = require('mongodb').MongoClient; MongoClient.connect('mongodb://localhost:27017/test', { useNewUrlParser: true }, function(err, db) { console.log(db.collection); // undefined db.collection('mytable').insert({'name': "Andrew"}); // db.collection is not a function }); |
Вложений: 1
Шеф! Всё пропало!
Свойства нет, оно не работает! (а у меня работает) var url = 'mongodb://xxxxxx:yyyyy@ds115701.mlab.com:15701/bookexpress'; MongoClient.connect(url, function(err, db) { db.collection('asdfg').insert({ text: 'ASDFGH' }); db.close(); }); |
Особенно бесит во всех этих консольных программах что никогда парой команд нельзя что-то поставить. Может в документации написано про пару команд, а в реальности после этого получаешь 50 строк ошибок. И вот сидишь пол дня и читаешь форумы вставляя непонятные команды чтобы исправить непонятную ошибку. Черт возьми, я просто хочу попробовать этот инструмент. Нафига его проектировать так, чтобы без танцев с бубном нельзя было поставить. В конце концов почему нельзя написать нормальную инструкцию где был бы дан железобетонный способ установки программы? Но нет. Это слишком очевидно и просто. Обязательно нужно сидеть, исправлять ошибки которые ты не совершал, перечитывать темы таких же неудачников, материться и портить себе настроение.
Даже после установки этой базы данных она не может нормально работать. А сейчас после установок и переустановок она вообще не запускается. Полностью с вам согласен — всё пропало. |
https://metanit.com/nosql/mongodb/2.2.php
но есть же драйвер mongoose (он хороший) И кстати, на официальном сайте Монги совершенно железобетонные инструкции по установке - для всех ОС, поимённо. |
Цитата:
|
Хе. Ну, какую в колбеке написать переменную - это без разницы.
Чего они наусложняли в v3.1 - то, что нужно зачем-то ещё и имя базы писать, вот так: var MongoClient = require('mongodb').MongoClient; var url = 'mongodb://xxxxxx:yyyyyy@ds115701.mlab.com:15701/bookexpress'; MongoClient.connect(url, { useNewUrlParser: true }, function(err, db) { db.db('bookexpress').collection('aaaa').insertOne({ text: 'A' }); console.log(err); db.close(); }); При этом, если я его не пишу в URL при коннекте - то этой базы, говорит, нету (вторая db - null). Зачем же я его пишу два раза? Бессмыслица какая-то. UPD Хотя, как выясняется, если подключаться к локалхосту - всё выглядит правильно var url = 'mongodb://localhost:27017'; MongoClient.connect(url, { useNewUrlParser: true }, function() { arguments['1'].db('dbdbdb').collection('aaaa').insertOne({ text: 'A' }); console.log(arguments['0']); arguments['1'].close(); }); Let it be |
Часовой пояс GMT +3, время: 00:42. |