我是MongoDB的新手,需要帮助。在我的数据库中,我试图创建一个仅包含一个文档的集合。该文档具有一个简单的关键字`city,该数组包含124247个对象。这是我的代码
const express = require('express');
const bodyParser = require('body-parser');
const mongoose = require("mongoose");
const cities = require('cities.json');
const Schema = mongoose.Schema;
const db = mongoose.connection;
const app = express();
mongoose.connect("mongodb://localhost:27017/cities");
db.once("open", function() {
console.log("Connection ok.");
})
const cityScheme = new Schema({
cities: Array
});
const WorldCities = mongoose.model("WorldCities", cityScheme);
const myCities = new WorldCities({
cities: cities
}).save().then(data => console.log({}.toString.call(data.cities), 'dataaa'));
WorldCities.find({
name: "Yerevan"
}, function(err, data) {
console.log(data, 'Armenia');
});
cityScheme.statics.getSearchedcity = function(res) {
this.find({}, (err, citysList) => res.json({
citysList
}));
}
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
app.get('/api/city', (req, res) => {
})
app.listen(3000);
这是指向city.json`Cities.json的链接。
因此,我想在这里找到名称为埃里温的城市,但我不知道如何找到它。
答案 0 :(得分:1)
您正在使用mongoose
,并且从原始数据的外观来看,您似乎只在寻找一个文档...似乎还定义了架构,因此您拥有cities
属性包含来自JSON的城市对象,因此:
WorldCities.findOne({
'cities.name': "Yerevan"
}, function(err, model) {
// do something with the model here
console.log(model);
});
findOne将只为您找到一个文档,并在回调中返回它。
看看是否能帮到您。
答案 1 :(得分:0)
使用.filter
例如:
arrayOfCiteis.filter(myC => myC.name === "Yerevan")