小编use*_*001的帖子

即使我检查文档是否已存在,Mongoose仍在保存文档

在我保存作者之前,我想尝试检查作者是否在mongo中.当我通过创建作者函数运行我的第一个rss文档时,所有作者都保存在数据库中 - 即使他们在feed中编写了两个项目.

奇怪的是,如果我再次运行feed,mongoose似乎意识到作者已经存在并且不再添加它们.有人可以向我解释发生了什么事吗?

function insertFeedItems(feedItems, newFeedID, callback) {
    feedItems.forEach((item) => {
        let firstName = item.author.substr(0, item.author.indexOf(' '));
        let lastName = item.author.substr(item.author.indexOf(' ') + 1);
        authorController.createAuthorInternally(firstName, lastName, function(author) {
            let aid = author.id;
            categoryController.createCategoryInternally(item.categories, function(categories) {
                // console.log('author: '+aid);
                // console.log('categories: '+categories);
            });
        });
    });

}


exports.createAuthorInternally = (firstName, lastName, callback) => {

    let author = authorFilter.validateAuthor(firstName, lastName);

    let queryParams = {
        $and: [{firstName: {$regex: firstName, $options: 'i'}},
            {lastName: {$regex: lastName, $options: 'i'}}],
    };

    let query = Author.findOne(queryParams).sort([['lastName', 'ascending']]);
    let …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb

9
推荐指数
1
解决办法
180
查看次数

难以理解Java 8 Lambda

private ExecutorService exec = Executors.newSingleThreadExecutor(r -> {
    Thread t = new Thread(r);
    t.setDaemon(true); // allows app to exit if tasks are running
    return t ;
});
Run Code Online (Sandbox Code Playgroud)

我理解遗嘱执行人背后的想法,但是,参与者r让我感到困惑.我用了:

 final ExecutorService exec = Executors.newSingleThreadExecutor(r -> {
        Thread t = new Thread(r);
        System.out.println("Class of r: " + r.getClass()+ ". r to string: " + r.toString());
        System.out.println("Class of t: " + t.getClass() +". Name of t: "+ t.getName());
        t.setDaemon(true);
        return t;
    });
Run Code Online (Sandbox Code Playgroud)

深入挖掘,结果如下:

Class of r: class java.util.concurrent.ThreadPoolExecutor$Worker. r to string: java.util.concurrent.ThreadPoolExecutor$Worker@1dc3963[State …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

8
推荐指数
1
解决办法
1486
查看次数

如何在 Project Lombok 设置器中进行自定义验证

我有一个项目(ID3 标记),其中包含数十个 setter 和 getter。我正在调查 Lombok 项目,看看它对我有何帮助。

一些可以设置的字段有非常严格的要求,包括字符编码、位设置、长度检查、字符范围等等。我可以使用构建器模式,但是,在某些情况下可能不需要该模式。如果我想使用验证方法和/或类而不是注释怎么办?如何在 Netbeans 项目中访问 Lombok 的 setter 来添加这些验证?

java netbeans lombok

5
推荐指数
1
解决办法
1万
查看次数

我无法弄清楚我的简单Java作业

我有这个编程任务,可以在米和英尺之间,以及千克到磅之间进行转换.当我告诉程序我想要转换重量(通过在提示时输入"w"),它给了我以下错误:

Error: Too many input characters error.

我在这方面工作了很长时间,但无法搞清楚.有人可以告诉我如何使重量转换像长度转换一样工作吗?

import java.util.Scanner;

/**
 * This class..
 */
public class UnitConversion3b
{
    public static void main(String[] args)   
    {
        Scanner keyboard = new Scanner(System.in);

        String maxInputWarning = "\nError: Too many input characters."
        + "\nProgram is now terminating.";
        String lengthOrWeight;
        final double LENGTH_CONVERSION_FACTOR = 3.2808399;
        final double WEIGHT_CONVERSION_FACTOR = 2.20462;
        String whichWeightConversion = "empty" , whichLengthConversion = "empty";
        double feet = 0, meters = 0, pounds =0 , kilograms = 0;
        double metersConvertedToFeet, feetConvertedToMeters;
        double …
Run Code Online (Sandbox Code Playgroud)

java

3
推荐指数
2
解决办法
1695
查看次数

Android工具栏覆盖了一个片段

我在应用程序中有2个布局,工具栏覆盖了这些布局.在每一个布局,我尝试使用android:layout_below="@id/app_bar_layoutandroid:layout_below="@id/toolbar,没有运气.我怎样才能解决这个问题?

通过触摸菜单项来调用回收器视图,并通过rv adpater和视图持有者类进行充气.到目前为止,除了覆盖视图的工具栏之外,我没有其他问题.

<?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.aaron.walkingtourtest09feb.MainActivity">

<android.support.design.widget.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/app_bar_layout"
    android:theme="@android:style/Theme.Material">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:elevation="4dp"
        app:popupTheme="@style/AppTheme.PopupOverlay"
        android:background="#607D8B"/>

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main"/>

</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)

content_main.xml:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/toolbar"
    tools:context="com.example.test09feb.MainActivity"
    tools:showIn="@layout/app_bar_main"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

<fragment
    android:id="@+id/listFragment"
    android:tag="unique_tag"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.example.test09feb.MainActivity$ExampleFragment" >
</fragment>
Run Code Online (Sandbox Code Playgroud)

Recyclerview_activity.xml

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/cardview_light_background"
android:animateLayoutChanges="true"
android:padding="6dp">

<android.support.v7.widget.RecyclerView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/rv">
</android.support.v7.widget.RecyclerView>
Run Code Online (Sandbox Code Playgroud)

cards.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/tools"
          xmlns:card_view="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="vertical">


<android.support.v7.widget.CardView
    android:id="@+id/cv"
    xmlns:android="http://schemas.android.com/apk/res/android" …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-actionbar android-toolbar

3
推荐指数
2
解决办法
2308
查看次数

猫鼬"脱离不是一种功能"

我正在使用本教程制作节点/ mongo应用程序.当我运行addContact时,似乎联系人保存到数据库但是,我得到一个错误,说断开连接功能不是一个功能.任何人都可以告诉我为什么会这样,以及如何解决它?我假设常量的范围存在一些问题,db

码:

const mongoose = require('mongoose'); 
const assert = require('assert'); 
mongoose.Promise = global.Promise; 


const db = mongoose.connect('mongodb://localhost:27017/contact-manager');


function toLower(v) {
  return v.toLowerCase();
}

const contactSchema = mongoose.Schema({
  firstname: { type: String, set: toLower },
  lastname: { type: String, set: toLower },
  phone: { type: String, set: toLower },
  email: { type: String, set: toLower }
});


const Contact = mongoose.model('Contact', contactSchema);

const addContact = (contact) => {
  Contact.create(contact, (err) => {
    assert.equal(null, err); …
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb node.js

2
推荐指数
1
解决办法
1419
查看次数

试图将一个整数转换为NSNumber - 取而代之的是奇怪的数字

"rowNumber"记录为:79050688."rowNumberAsInt"被记录为16以下的数字.如何正确转换我的int?

-(int)randomNumberGenerator{

int rowNumberAsInt;
NSNumber *rowNumber;

randomNumberPool = [[NSMutableArray alloc]initWithCapacity:16];

while (![randomNumberPool containsObject:rowNumber]) {
    rowNumberAsInt = (arc4random() % 16);
    rowNumber = [NSNumber numberWithInt:rowNumberAsInt];
    [randomNumberPool addObject:rowNumber];     
}

NSLog(@"random rowNumber: %d ", rowNumber);
NSLog(@"random rowNumberAsInt: %d ", rowNumberAsInt);
return rowNumberAsInt;
Run Code Online (Sandbox Code Playgroud)

}

xcode objective-c ios

1
推荐指数
1
解决办法
165
查看次数

Spring数据"行的列数据太长"

我的数据库中有3个表.FOOD_GROUP, FOOD_DESCRIPTION, SECONDARY_FOOD_DESCRIPTION,.我Application.java以正确的顺序解析数据文件,以便在表上对下一个文件有用.我的问题是,当我在SecondaryFoodDescription类中设置databankID字段时,我得到了Data truncation: Data too long for column 'food' at row 1.这是令人惊讶的(至少对我而言)因为,我使用相同的repository.save方法来填充类中的foodGroup字段.Food.

编辑:我知道通常情况下,错误Data truncation: Data too long for column 'foodid' at row 1就意味着我要插入的内容对于字段来说太大了.但是,我正在尝试插入实体.我的实体怎么可能太大了?

谁能发现我错了?

@SpringBootApplication
public class Application {

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

@Bean
public CommandLineRunner demo(FoodGroupRepository foodGrouprepository, FoodRepository foodRepository,
                              SecondaryFoodInformationRepository secondaryFoodInformationRepository,
                             ) {
    return (args) -> {

        FoodGroupParser foodGroupParser = new FoodGroupParser();
        FoodGroup foodGroup;
        Map<String, String> foodGroupMap = foodGroupParser.returnFoodGroupData();

        for (Map.Entry<String, …
Run Code Online (Sandbox Code Playgroud)

java spring spring-data spring-boot

1
推荐指数
1
解决办法
700
查看次数

如何在没有关键字"implements"的情况下使用接口?

可能重复:
为什么接口类型的这些变量不用于实例化新对象?

在我正在使用的API下面的代码示例中,有一个变量初始化,"audiodecoder"和"cc".这两个变量属于接口类型.但是,除了actionlisteners之外,关键字implements不会在代码示例中的任何位置使用.

这与我迄今为止学到的关于Java的任何内容都不相符.我已经列出了下面的import语句,认为他们可能对IDecoder和ICodecContextWrapper没有相应的implements语句有一些线索.我也试图找到一些关于以这种方式使用接口的文档但没有成功.有人可以向我解释为什么不使用关键字实现?这个概念是否有一个名称,或许有一些关于这个概念的文献?

编辑:我还应该补充说,变量未在示例代码中使用关键字new声明.

import org.libav.audio.Frame2AudioFrameAdapter;
import org.libav.audio.PlaybackMixer;
import org.libav.audio.SampleInputStream;
import org.libav.avcodec.ICodecContextWrapper;
import org.libav.avformat.IChapterWrapper;
import org.libav.avformat.IFormatContextWrapper;
import org.libav.avformat.IStreamWrapper;
import org.libav.avresample.bridge.AVResampleLibrary;
import org.libav.avutil.IDictionaryWrapper;
import org.libav.avutil.bridge.AVChannelLayout;
import org.libav.avutil.bridge.AVSampleFormat;
import org.libav.bridge.LibraryManager;
import org.libav.data.IFrameConsumer;
import org.libav.util.swing.VideoPane;


IDecoder audioDecoder = player.getAudioStreamDecoder(streamIndex);
ICodecContextWrapper cc = audioDecoder.getCodecContext();
Run Code Online (Sandbox Code Playgroud)

java

-2
推荐指数
1
解决办法
270
查看次数