Я пытаюсь запустить это, чтобы проверить, что коллекция действительно существует:
dbo.collectionNames("users", function(err, names) {
console.info('Exists: ', names.length > 0);
});
Но он продолжает говорить мне, что 'collectionNames' это не функция
Как я могу сделать эту проверку?
какая у вас версия мангуста и версия драйвера mongodb? при использовании мангуста.
dbo это просто: var dbo = db.db("myDatabase");
@monroe2019 здесь есть ответ, и он поможет вам... stackoverflow.com/questions/33214175/…
Мне нужно проверить конкретную именованную коллекцию, а не если есть какие-либо коллекции
Я думаю, что это проблема dbo. Просто попробуйте с db.collectionNames
Из любопытства, зачем тебе это знать? Я спрашиваю, потому что вы можете делать операции с db.collection('name'), даже если его еще не существует. Также покажите, как именно вы создаете dbo.
По сути, когда приложение запускается, я хочу вставить документ в коллекцию, но ТОЛЬКО, если коллекция пуста, иначе она будет добавляться каждый раз при запуске приложения.





Я полагаю, что вы используете> 2.0 драйвера Mongo. Если да, пожалуйста, используйте dbo.listКоллекции
dbo.listCollections().toArray(function(err, colls){
let myCollection = colls.find(coll => coll.name === 'users');
console.info('Exists: ', myCollection?'Yes': 'No');
});
Отредактировано: приведенный выше код должен работать.
Это не позволит OP узнать, является ли конкретная коллекция существует или нет. Он будет отображать только существующие коллекции.
@Lix, я думаю, он может проверить необходимую коллекцию из массива коллов. А также количество коллекций из длины массива коллов. Вы не согласны?
Ни одна из ссылок не говорит мне, как проверить коллекцию по имени
Я не знаю, какие трудности вы находите. Приведенный ниже код должен вернуть вам желаемое, если коллекция существует. dbo.listCollections().toArray(function(err, colls){ let myCollection = colls.find(coll => coll.name === 'users'); console.info('Exists: ', myCollection?'Yes' : 'Нет'); });
ДБО? пожалуйста, предоставьте его в вопросе.